【问题描述】

  输入两个正整数,求他们的和。

【样例输入】

1234567898765432123456789

9876543212345678987654321

【样例输出】

11111111111111111111111110

 1 #include<iostream>
 2 #include<cstring> 
 3 using namespace std;
 4 char a1[1001],b1[1001];
 5 int a[1001]={},b[1001]={},c[1001]={}; 
 6 int main(){
 7     int lena,lenb;
    //使用字符型数组输入,方便计算高精度位数
8 cin >> a1 >> b1; 9 lena = strlen(a1); 10 lenb = strlen(b1);
    //字符型数组转换为整型数组,便于计算
11 for(int i=0;i<lena;i++){ 12 a[i]=a1[lena-1-i]-48; 13 } 14 for(int i=0;i<lenb;i++){ 15 b[i]=b1[lenb-1-i]-48; 16 } 17 int lenc=0,x=0; 18 while(lenc<lena||lenc<lenb){ 19 c[lenc]=a[lenc]+b[lenc]+x; 20 x=c[lenc]/10; 21 c[lenc]=c[lenc]%10; 22 lenc++; 23 }
    //如果首位为零,清楚
24 c[lenc]=x; 25 if(c[lenc]==0){ 26 lenc--; 27 }
    //倒叙输出
28 for(int i=lenc;i>=0;i--){ 29 cout << c[i]; 30 } 31 return 0; 32 }

 

posted on 2017-12-22 11:43  Hankercat  阅读(183)  评论(1)    收藏  举报