zoukankan      html  css  js  c++  java
  • Programming Ability Test学习 1016. 部分A+B (15)

    1016. 部分A+B (15)

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。

    现给定A、DA、B、DB,请编写程序计算PA + PB

    输入格式:

    输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010

    输出格式:

    在一行中输出PA + PB的值。

    输入样例1:
    3862767 6 13530293 3
    
    输出样例1:
    399
    
    输入样例2:
    3862767 1 13530293 8
    
    输出样例2:
    0




    #include <stdio.h>
    #include <math.h>
    #include<string.h>
    #include<stdlib.h>

    char kobe[11];

    int cp;
    int j;
    int hh;

    //2字符串相加 9999+1=10000
    void main1(char *A,char *B)
    {
    char str1[20],str2[20];
    char str4[20],str5[20];
    char strtt[15];
    memset(str1,0,sizeof(str1));
    memset(str2,0,sizeof(str2));
    strcpy(str1,A);
    strcpy(str2,B);

    memset(str4,0,sizeof(str4));
    memset(str5,0,sizeof(str5));
    memset(strtt,0,sizeof(strtt));
    int a,b,c;
    hh=0;

    a=strlen(str1);
    b=strlen(str2);
    if(a>=b){
    strcpy(str4,str1);
    strcpy(str5,str2);
    }
    else{
    strcpy(str4,str2);
    strcpy(str5,str1);
    }
    cp=1;
    j=strlen(str5)-1;
    int strlen1=strlen(str4);
    int strlen2=strlen(str5);
    for(int i=strlen1-1;i>=strlen1-strlen2;i--)
    {
    int temp,temp1,temp2;
    temp1=str4[i]-'0';

    temp2=str5[j]-'0';
    temp=temp1+temp2;
    if(cp==-1)temp++;
    if(temp>=10)
    {
    temp=temp%10;
    str4[i]=temp+'0';
    cp=-1;
    }
    else
    {
    str4[i]=temp+'0';
    cp=1;
    }
    j--;
    }


    if(cp==-1)
    {
    for(int i=strlen(str4)-strlen(str5)-1;i>=0;i--)
    {
    int temp3=str4[i]-'0';
    if(cp==-1)temp3=temp3+1;
    if(temp3>=10)cp=-1;
    else cp=1;
    temp3=temp3%10;
    str4[i]=temp3+'0';
    }
    }

    if(cp==-1)
    {
    strtt[0]='1';
    strcat(strtt,str4);
    strcpy(str4,strtt);
    }
    int xiexie=0;


    if(str4[0]=='0'&&strlen(str4)>1)
    {
    for(int i=0;i<strlen(str4);i++)
    if(str4[i]=='0') xiexie++;
    if(xiexie==strlen(str4))strcpy(str4,"0");
    else{
    int xx=0;
    while(str4[xx]=='0'&&str4[xx+1]=='0'&&str4[xx+1]!='')xx++;
    char cp9[100];
    memset(cp9,0,sizeof(cp9));int yy=0;
    for(int i=xx+1;i<strlen(str4);i++)cp9[yy++]=str4[i];
    strcpy(str4,cp9);
    }
    }
    strcpy(kobe,str4);


    }


    int main()
    {
    char a[100];
    char a1[100];
    char b[100];
    char b1[100];
    memset(a,0,sizeof(a));
    memset(a1,0,sizeof(a1));
    memset(b,0,sizeof(b));
    memset(b1,0,sizeof(b1));
    int Da,Db;
    scanf("%s %d %s %d",a,&Da,b,&Db);
    int Da1=0,Db1=0;
    char s1=Da+'0';
    char s2=Db+'0';
    for(int i=0;i<strlen(a);i++)
    if(a[i]==s1)Da1++;
    for(int i=0;i<strlen(b);i++)
    if(b[i]==s2)Db1++;

    if(Da1==0)strcpy(a1,"0");
    else{
    for(int i=0;i<Da1;i++)
    a1[i]=s1;}
    if(Db1==0)strcpy(b1,"0");
    else{
    for(int i=0;i<Db1;i++)
    b1[i]=s2;}

    main1(a1,b1);
    puts(kobe);

    // puts(a1);puts(b1);


    // printf("%d %d ",Da1,Db1);
    /*puts(a);
    puts(b);
    printf("%d %d ",Da,Db);*/

    return 0;
    }



  • 相关阅读:
    用tar命令把目标压缩包解压到指定位置
    testing and Deployment
    项目第二阶段进展
    注解使用中 @RequestMapping 和 @GetMapping @PostMapping 区别
    导入项目之最多的问题
    0 for前端之数据交互
    Required String parameter 'xxxxx' is not present] 报错400
    CDI Features
    初始化数据库问题
    mysql的时区问题
  • 原文地址:https://www.cnblogs.com/a842297171/p/4488128.html
Copyright © 2011-2022 走看看