#include<iostream>#include<stdio.h>#include<string.h>#include<string>usingnamespace std;voidchu(int k,int l, string a, string b){
string str;int i, t =0, p, j =0, g =0;//g表示进位数for(i =0;i < k - l;i++)
b ="0"+ b;//输入a的长度大于b的长度,那么就给较短字符串左边添0,直至b的长度等于a的长度for(i = k -1;i >=0;i--){
t =(a[i]-'0')+(b[i]-'0')+ g;
g = t /10;
t = t %10;
str =char(t +'0')+ str;//左添}if(g !=0)//判断特殊进位
str =char(g +'0')+ str;
cout << str << endl;}intmain(){int k, l;
string a, b;
cin >> a >> b;
k = a.length();
l = b.length();if(k > l)chu(k, l, a, b);elsechu(l, k, b, a);}
数组解法
#include<iostream>usingnamespace std;int a[10001], b[10001], c[10001];char ab[10001], bc[10001];int x, y;int maxl;int jw;//判断是否进位intmain(){
cin >> ab >> bc;
x =strlen(ab);
y =strlen(bc);for(int i =0;i < x;i++) a[i]= ab[x - i -1]-'0';for(int i =0;i < y;i++) b[i]= bc[y - i -1]-'0';
maxl =max(x, y);for(int i =0; i < maxl; i++){
c[i]= a[i]+ b[i]+ jw;
jw = c[i]/10;
c[i]%=10;}if(jw ==1) cout << jw;for(int i = maxl -1;i >=0;i--){
cout << c[i];}return0;}
字符串解法#include<iostream>#include<stdio.h>#include<string.h>#include<string>using namespace std;void chu(int k, int l, string a, string b){ string str; int i, t = 0, p, j = 0, g = 0;//g表示进位数 for (i = 0;i < k - l;i++) b