高精度(1.加法):
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[300]={0},b[300]={0},c[300]={0},lena,lenb,lenc;//作为加数(a,b)跟和(c)
char x[300],y[300];//读取加数
void gjdAdd(char x[],char y[]){
lena=strlen(x);
lenb=strlen(y);
lenc=1;
for(int i=0;i<lena;++i){ //从字符数组转换成数字数组 (倒序存储)
a[lena-i]=x[i]-'0';
}
for(int i=0;i<lenb;++i){
b[lenb-i]=y[i]-'0';
}
int z=0;
while(lenc<=lena||lenc<=lenb){//计算加法
c[lenc]+=a[lenc]+b[lenc]+z;
z=c[lenc]/10;
c[lenc]%=10;
lenc++;
}
c[lenc]=z;
while(c[lenc]==0&&lenc>1){//计算位数(不能有前置0啊)
lenc--;
}
for(int i=lenc;i>0;--i){//输出
cout<<c[i];
}
}
int main(){
//输入
gets(x);
gets(y);
gjdAdd(x,y);
return 0;
}
点个赞呗❤