• 大数加法模板


    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    char s[1005],p[1005];
    int a[1005],b[1005],c[1005];
    int main(){
        s[0]='#';p[0]='#';
        int T,cas=0;scanf("%d",&T);
        while(T--){
            scanf("%s%s",s+1,p+1);
            int i,lens=strlen(s)-1,lenp=strlen(p)-1;
            for(i=0;i<1005;++i) a[i]=0;
            for(i=0;i<1005;++i) b[i]=0;
            for(i=lens;i>=1;--i) a[i]=s[lens-i+1]-'0';
            for(i=lenp;i>=1;--i) b[i]=p[lenp-i+1]-'0';
            a[0]=lens;b[0]=lenp;c[0]=max(a[0],b[0]);
            for(i=1;i<=a[0]||i<=b[0];++i) c[i]=a[i]+b[i];    
            for(i=1;i<=c[0];++i)
                if(c[i]>=10){
                    if(i+1>c[0]) c[0]++;c[i+1]+=c[i]/10;c[i]%=10;
                }
            while(c[c[0]]>=10) {
                c[c[0]+1]=c[c[0]]/10;
                c[c[0]++]%=10;
            }
            printf("Case %d:
    %s + %s = ",++cas,s+1,p+1);
            for(i=c[0];i>=1;--i) printf("%d",c[i]);printf("
    ");
            if(T!=0) printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    Ubuntu 16 安装ElasticSearch
    二叉树
    归并排序
    快速排序
    Git、Github使用
    445. 两数相加 II
    141. 环形链表
    92. 反转链表 II
    19. 删除链表的倒数第N个节点
    2. 两数相加
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6574657.html
Copyright © 2020-2023  润新知