zoukankan      html  css  js  c++  java
  • Hdu1002 A+B ProblemII(大数相加模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002

    #include<iostream>
    #include<vector>
    #include<string>
    #include<cstring>
    using namespace std;
    
    int t;
    char a[1001],b[1001];
    int sum[2000];
    int la,lb,tmp;
    
    int idx(char x){
        return x-'0';
    }
    //进位以后还要复原。所以进位也不能进在a跟b上,就只能进在sum上面 
     
    int main (){
    
        cin>>t;
        int c=1;
        while(t--){
            
            char *ls,*ss;
            int l,s;
            cin>>a+1>>b+1;//腾出一个空位给进位 
            b[0]=a[0]='0';
            la=strlen(a+1);
            lb=strlen(b+1);//注意strlen(a)返回值是0 
            
            if(la>lb)
            {
                ls=a;l=la;
                ss=b;s=lb;
            }
            else
            {
                ls=b;l=lb;
                ss=a;s=la;
            }
            
            memset(sum,0,sizeof(sum));
            for(int i=l,j=s;j>0;i--,j--)
            {
                tmp=sum[i]+idx(ls[i])+idx(ss[j]);
                if(tmp>=10)
                {
                    tmp-=10;
                    sum[i-1]++;
                }
                sum[i]=tmp;
            }
            for(int i=l-s;i>=0;i--)
            {
                sum[i]+=idx(ls[i]);
                if(sum[i]>=10)//显然i=0的时候肯定否 
                {
                    sum[i]-=10;
                    sum[i-1]++;
                }
            }
            
            cout<<"Case "<<c++<<":
    "
            <<a+1<<" + "<<b+1<<" = ";
            
            if(sum[0]!=0)
                cout<<sum[0];
            for(int i=1;i<=l;i++)
                cout<<sum[i];
            if(t==0)//如果是最后一次输出了
                cout<<endl;
            else
                cout<<endl<<endl; 
        }    
        return 0;
    }
  • 相关阅读:
    点分治
    主席树
    可持久化并查集
    可持久化线段树
    网络流
    AC自动机
    线性基
    快速幂
    素数筛
    扩展欧几里得算法
  • 原文地址:https://www.cnblogs.com/neverchanje/p/3569963.html
Copyright © 2011-2022 走看看