zoukankan      html  css  js  c++  java
  • HDU1002 大数相加

     1 #include <iostream>
     2 #include <iostream>
     3 #include <iomanip>
     4 #include<string>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 string A , B;
     9 char a[1010];
    10 char b[1010];
    11 char result[1010];
    12 
    13 int max(int a,int b)
    14 {
    15     return a>b?a:b;
    16 }
    17 int main()
    18 {
    19     int T;
    20     cin>>T;
    21     for(int j=1;j<=T;j++)
    22     {
    23         memset(a,'0',sizeof(a));
    24         memset(b,'0',sizeof(a));
    25         memset(result,'0',sizeof(a));
    26         cin>>A>>B;
    27         int len1=A.size(),len2=B.size();
    28         int m=len1,n=len2;
    29         for(int i=0;i<m;i++)
    30         {
    31             a[i]=A.at(len1-1);
    32             len1--;
    33         }
    34         for(int i=0;i<n;i++)
    35         {
    36             b[i]=B.at(len2-1);
    37             len2--;
    38         }
    39         int k=max(m,n);
    40 
    41 
    42         int t=0;//用于向前进位;
    43         for(int i=0;i<=k;i++){
    44             if((a[i]-'0')+(b[i]-'0')+t>=10) result[i]=(char)((a[i]-'0')+(b[i]-'0')+t-10+'0'),t=1;
    45             else  result[i]=(char)((a[i]-'0')+(b[i]-'0')+t+'0'),t=0;
    46         }
    47 
    48         cout<<"Case "<<j<<":"<<endl;
    49         cout<<A<<" + "<<B<<" = ";
    50         if(result[k]=='0'){
    51             for(int i=k-1;i>=0;i--) cout<<result[i];
    52         }
    53         else{
    54             for(int i=k;i>=0;i--) cout<<result[i];
    55         }
    56         cout<<endl;
    57         if(j!=T) cout<<endl;
    58 
    59     }
    60     return 0;
    61 }

    由于数字位数可达1000之多,即使long long也没法计算,那么只能用数组来进行存储,不断进位来解决问题。

  • 相关阅读:
    cl编译器命令行调试问题
    西电计算机专业培养
    GCN代码实现
    GCN介绍
    cpu密集型任务及IO密集型任务,GIS,多进程及多线程
    骨架提取
    视频文件的一些属性
    空洞填充
    凸包,二值图家矩形框
    RGB图片取大于阈值部分
  • 原文地址:https://www.cnblogs.com/CSU3901130321/p/3861017.html
Copyright © 2011-2022 走看看