zoukankan      html  css  js  c++  java
  • hdu 1002 A + B Problem II(大数)

    题意:就是求a+b (a,b都不超过1000位)

    思路:用数组存储

    第一道大数的题目,虽然很水,纪念一下!

    代码:

    #include<cstdio>
    #include<cstring>
    
    int main(){
        int t,lena,lenb,i,j,sum,testcase=0;
        char a[1024],b[1024];
        char c[1024];//存 a+b
        int co;//进位
        scanf("%d",&t);
        int tt=t;
        while(t--){
            co=0;
            memset(c,'',sizeof(c));
            testcase++;
            scanf("%s%s",a,b);
            lena=strlen(a);
            lenb=strlen(b);
            if(lena<lenb){//b长
                for(i=lena-1,j=lenb-1;i>=0;i--,j--){
                    sum=(a[i]-'0')+(b[j]-'0')+co;
                    c[j]='0'+sum%10;
                    co=sum/10;
                }
                for(;j>=0;j--){
                    sum=b[j]-'0'+co;
                    c[j]='0'+sum%10;
                    co=sum/10;
                }
            }
            else{//否则
                for(i=lena-1,j=lenb-1;j>=0;i--,j--){
                    sum=(a[i]-'0')+(b[j]-'0')+co;
                    c[i]='0'+sum%10;
                    co=sum/10;
                }
                for(;i>=0;i--){
                    sum=a[i]-'0'+co;
                    c[i]='0'+sum%10;
                    co=sum/10;
                }
            }
            printf("Case %d:
    ",testcase);
            printf("%s + %s = ",a,b);
            if(co!=0) printf("%d",co);//最高位有溢出,则输出最高位的进位
            printf("%s
    ",c);
            if(testcase<tt) printf("
    ");//注意格式,最后一组没有空行
        }
        return 0;
    }
    
    
    
    



  • 相关阅读:
    爬虫:Scrapy15
    爬虫:Scrapy14
    爬虫:Scrapy13
    爬虫:Scrapy12
    爬虫:Scrapy11
    爬虫:Scrapy10
    爬虫:Scrapy9
    线段树基础
    [USACO08DEC]秘密消息Secret Message
    阅读理解
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4477369.html
Copyright © 2011-2022 走看看