实现高精度加法

#include #include #include #define maxn 10005 using namespace std;

int a[maxn],b[maxn],c[maxn]; char s1[maxn],s2[maxn];

int main() { scanf("%s%s",&s1,&s2); int len1=strlen(s1); int len2=strlen(s2); for(int i=0;i<len1;i++) { a[i]=s1[len1-i-1]-'0';//将s1倒序存储到a中 } for(int i=0;i<len2;i++) { b[i]=s2[len2-i-1]-'0';//将s2倒序存储到b中 } int len=max(len1,len2);//取a和b的最大长度 for(int i=0;i<len;i++) { c[i]+=a[i]+b[i];//从低位开始相加,将结果存储到c中 c[i+1]+=c[i]/10;//进位 c[i]%=10;//取余数 } if(c[len]>0)len++;//如果最高位有进位,则长度加1 for(int i=len-1;i>=0;i--) { printf("%d",c[i]);//倒序输出结果 } return 0;

写一则C++高精度

原文地址: https://www.cveoy.top/t/topic/hddq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录