1 123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0
370370367037037036703703703670
简单大数题。。
AC代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char a[110];
int ans[110];
int tmp[110];
void fun(char a[], int tmp[]) {
int len = strlen(a);
for(int i = len - 1; i >= 0 ; i--) {
tmp[len - 1 - i] = a[i] - '0';
}
}
void add(int ans[], int tmp[]) {
int up = 0;
for(int i = 0; i < 110; i++) {
int t = ans[i] + tmp[i] + up;
ans[i] = t % 10;
up = t / 10;
}
}
void print(int ans[]) {
int flag = 0;
for(int i = 109; i >= 0; i--) {
if(ans[i] > 0) {
flag = 1;
printf("%d", ans[i]);
}
else if(flag && ans[i] == 0) printf("0");
}
if(flag == 0) printf("0");
printf("\n");
}
int main() {
int n;
scanf("%d", &n);
while(n--) {
scanf("%s", a);
if(strcmp(a, "0") == 0) { //没判断只有一个0的情况,无语的WA了2次╮(╯▽╰)╭
printf("0\n");
if(n) printf("\n");
continue;
}
memset(ans, 0, sizeof(ans));
fun(a, ans);
while(1) {
scanf("%s", a);
if(strcmp(a, "0") == 0) break;
memset(tmp, 0, sizeof(tmp));
fun(a, tmp);
add(ans, tmp);
}
print(ans);
if(n) printf("\n");
}
return 0;
}
HDU - 1047 - Integer Inquiry (大数高精度)
原文:http://blog.csdn.net/u014355480/article/details/44229571