分析思路
- 当大数的位数不同时,相加时要注意位数的对齐
代码如下
关键逻辑见注释
#include<stdio.h>
#include<string.h>
char num[55];
int ans[55] = {0};
int main() {
for (int i = 0; i < 100; ++i) {
scanf("%s", num);
int len = strlen(num);
if (len > ans[0]) ans[0] = len;
for (int j = 1; j <= len; ++j) {//累加的时候以当前数的位数len为准
ans[j] += (num[len - j] - '0');
}
for (int j = 1; j <= ans[0]; ++j) {//进位的时候以最长的位数ans[0]为准
if (ans[j] < 10) continue;
ans[j + 1] += (ans[j] / 10);
ans[j] %= 10;
ans[0] += (j == ans[0]);
}
}
for (int i = ans[0]; i > ans[0] - 10; --i) {
printf("%d", ans[i]);
}
return 0;
}