1002之另一算法wa版.cpp

来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 65 行

CPP
65
字号
#include<stdio.h>
#include<string.h>
int main()
{
    char a[1001],b[1001],c[1002];
    char left;
    int n,a1,b1,i,j,m,c1;
    scanf("%d",&n);
    m=0;
    while(m<n){
        m++;
        scanf("%s %s",a,b);
        a1=strlen(a)-1;
        b1=strlen(b)-1;
        if(a1>b1){
            strcpy(c,a);
            strcpy(a,b);
            strcpy(b,c);
            c1=a1;a1=b1;b1=c1;
        }
        i=0;
        left=0;
        while(a1>=0&&b1>=0){
            if(a[a1]-'0'+b[b1]-'0'+left<10){
                c[i]=a[a1]-'0'+b[b1]-'0'+left+'0';
                left=0;
            }
            else{
                c[i]=a[a1]-'0'+b[b1]-'0'+left-10+'0';
                left=1;
            }
            a1--;b1--;i++;
        }
        if(a1<0&&b1<0){
            if(left==1) c[i]='1';
            else i--;
        }
        if(b1>=0){
            while(b1>=0){
                if(b[b1]-'0'+left<10){
                    c[i]=b[b1]+left;
                    left=0;
                }
                else{
                    c[i]=b[b1]-'0'+left-10+'0';
                    left=1;
                }
                b1--;i++;
            }
            if(left==1) c[i]='1';
            else    i--;
        }

        printf("Case %d:\n%s + %s = ",m,a,b);
        for(j=i;c[i]=='0';i--);
        for(j=i;j>=0;j--)
            printf("%c",c[j]);
        printf("\n");
        if(m<n)
            printf("\n");

    }
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?