【问题描述】
输入两个正整数,求他们的和。
【样例输入】
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 }
浙公网安备 33010602011771号