代码:
#include<bits/stdc++.h>
using namespace std;
int a[210],b[210];
int c[210];
int lena,lenb,lenc;
string t;
//将字符串的数转存到数组中
int input(string t,int arr[]){
int len=0;
for(int i=t.size()-1;i>=0;i--){
arr[len]=t[i]-'0';
len++;
}
return len;
}
void add(int a[],int b[]){
for(int i=0;i<lenc;i++){
c[i]=a[i]+b[i];//按位相加
}
for(int i=0;i<lenc;i++){
if(c[i]>9){
c[i+1]++;//高位自增,进位
c[i]-=10;//进位后原来那一位剩下的数
}
}
//c最高位进位
if(c[lenc]){
lenc++;
}
while(c[lenc-1]==0){
lenc--;
}
}
int main(){
cin>>t;
lena=input(t,a);
cin>>t;
lenb=input(t,b);
lenc=lena>lenb?lena:lenb;//三目运算符,条件?满足条件就执行:否则执行这个
add(a,b);
//输出大整数
for(int i=lenc-1;i>=0;i--){
cout<<c[i];
}
return 0;
}
没加特判,0+0什么也不输出,加了特判才AC的
已经AC了但是想问问为什么0+0输出不了
另:GNU多精度算法库真是个好东西,Python自动高精度也是个好东西