• HDU


    普通大数相加:


    (1)超时: while循环条件不改变,导致死循环

    (2)wa:   s1,s2为字符串,len1=strlen(s1),len2=strlen(s2);

          swap(s1,s2)后,没有交换len1,len2

    (3)格式错误:   最后一行不要换行,每两个测试样例之间换行。

    看来我的菜是永无止境的,下次写代码,记得注意:

    1. 题目要求的输出格式

    2. 仔细想想每一条语句对上面的变量是否会造成影响。

    3. 输出的时候多测试,随机数测试也是有必要的,必须把所有可能情况都测一遍再交。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #define ll long long
    using namespace std;
    #define maxn 1220
    #define rep(i,a,b) for(int i=(a);i<(b);i++)
    char s1[maxn],s2[maxn];
    char ss1[maxn],ss2[maxn];
    
    int ans1[maxn*10];
    int ans2[maxn*10];
    int t1=0;
    int t2=0;
    
    int main(){
        int t;
        cin>>t;
        for(int kk=0;kk<t;kk++){
            t1=t2=0;
            scanf("%s %s",s1,s2);
            strcpy(ss1,s1);
            strcpy(ss2,s2);
    
            int l1=strlen(ss1);
            int l2=strlen(ss2);
           // cout<<l1<<"  "<<l2<<endl;
    
            int len1=strlen(s1);
            int len2=strlen(s2);
    
            if(len1<len2){
                swap(s1,s2);
            }
            len1=strlen(s1);
            len2=strlen(s2);
    
    
    
    
            int i1,i2;
            i1=len1-1,i2=len2-1;
            int jin=0;
    
            while(i1>=0&&i2>=0){
                int x1=s1[i1]-'0';
                int x2=s2[i2]-'0';
                ans1[t1++]=(x1+x2+jin)%10;
                jin=(x1+x2+jin)/10;
    
                i1--,i2--;
            }
            while(i1>=0){
                int x1=s1[i1--]-'0';
                ans1[t1++]=(x1+jin)%10;
                jin=(x1+jin)/10;
            }
            if(jin)
                ans1[t1++]=jin;
    
            for(int i=t1-1;i>=0;i--){
                ans2[t2++]=ans1[i];
            }
            printf("Case %d:
    ",kk+1);
            rep(o,0,l1)
                printf("%c",ss1[o]);
            cout<<" + ";
            rep(o,0,l2)
                printf("%c",ss2[o]);
            cout<<" = ";
            rep(i,0,t2)
                printf("%d",ans2[i]);
            puts("");
            if(kk!=t-1)
                puts("");
        }
        return 0;
    }
    

      

  • 相关阅读:
    day44
    day38
    day37
    day36
    作业35
    day35
    作业34
    day34
    day33
    Windows API 第三篇
  • 原文地址:https://www.cnblogs.com/pipitongkw1/p/10632507.html
Copyright © 2020-2023  润新知