| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 76151 | bnu_fanmeijie | 大整数加法 | C++ | 通过 | 0 MS | 264 KB | 884 | 2025-12-16 14:42:35 |
#include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> using namespace std; int a[505],b[505],c[505]; char s1[505],s2[505]; int main() { int la,lb,lc; scanf("%s",s1); scanf("%s",s2); la=strlen(s1); lb=strlen(s2); for(int i=0;i<la;i++) //将字符转换为数字 ,并将数字字符倒序,方便计算 { a[la-i]=s1[i]-'0'; } for(int i=0;i<lb;i++) //将字符转换为数字 ,倒序 { b[lb-i]=s2[i]-'0'; } lc=max(la,lb)+1; //定义加法结果的位数长度(考虑进位,要+1) //做加法运算 for(int i=0;i<=lc;i++) { c[i] += a[i]+b[i]; c[i+1]=c[i]/10; c[i]=c[i]%10; } if(c[lc]==0 && lc>0) lc--; //删除前导0 //输出结果,由于计算时将数字倒序了,这里要再次倒序,才是最终的计算结果 for(int i=lc;i>0;i--) printf("%d",c[i]); return 0; }