在noi judge上看到的,不知道去哪里问就来洛谷了。。。 原题链接: 想问一下我这个哪里错了。。。
//存疑????
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
char a1[100];
char b1[100];
int a[100], b[100], c[100];
int lena, lenb;
int i, x;
int main() {
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
//输入
cin.getline(a1, 100);
cin.getline(b1, 100);
lena = strlen(a1);
lenb = strlen(b1);
//存储
for ( i = 0; i <= lena - 1; i++) {
a[lena - i] = a1[i] - '0';
}
// cout << "a倒序为:";
// for (int j = 1; j < lena; j++) {
// cout << a[j];
// }
cout << endl;
for ( i = 0; i <= lenb - 1; i++) {
b[lenb - i] = b1[i] - '0';
}
// cout << "b倒序为:";
// for (int j = 1; j < lenb; j++) {
// cout << b[j];
// }
cout << endl;
int lenc = 1;
x = 0; // 存储进位
while (lenc <= lena || lenc <= lenb) {
c[lenc] = a[lenc] + b[lenc] + x;
x = c[lenc] / 10;
c[lenc] %= 10;
lenc++;
}
//准备输出
c[lenc] = x;//检测是否为0;为0就不输出
//处理前导0;
while (c[lenc] == 0) {
lenc--;
}
if (lenc <= 0) { //检测0
cout << 0;
return 0;
}
for ( i = lenc; i >= 1; i--) {
cout << c[i];
}
cout << endl;
return 0;
}