试题 基础练习 高精度加法

题意:就是大数加法

思路:用字符串输入,然后倒着赋给整形数组,然后相加注意进位即可。

#include
using namespace std;
int main(){
        char a[10000],b[10000];
        int c[10000],d[10000];
        int e[10000];
        int k,l;
        memset(c,0,sizeof(c));
        memset(d,0,sizeof(d));
        scanf(" %s %s",a,b);
        k=strlen(a);
        l=strlen(b);
        for(int i=0; i<k; i++)
            c[i]=a[k-i-1]-'0';
        for(int i=0; i<l; i++)
            d[i]=b[l-i-1]-'0';
        int op=0;
        for(int i=0; i<1000; i++)
        {
            e[i]=(c[i])+(d[i])+op;
            if(e[i]>=10)
            {
                e[i]=e[i]%10;
                op=1;
            }
            else op=0;
        }
        int i;
        for(i=999; i>=0; i--)
            if(e[i]!=0)break;
        for(int j=i; j>=0; j--)
            printf("%d",e[j]);
        printf("\n");
       
    return 0;
}

你可能感兴趣的:(c,c++,课外学习)