# Integer Inquiry

One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers.

This supercomputer is great,'' remarked Chip. I only wish Timothy were here to see these results.'' (Chip moved to a new apartment, once one became available on the third floor of the Lemon Sky apartments on Third Street.)

## Input

The input will consist of at most 100 lines of text, each of which contains a single VeryLongInteger. Each VeryLongInteger will be 100 or fewer characters in length, and will only contain digits (no VeryLongInteger will be negative).

The final input line will contain a single zero on a line by itself.

## Output

Your program should output the sum of the VeryLongIntegers given in the input.

## Sample Input

123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0

## Sample Output

370370367037037036703703703670

大整数相加，实际上像是小学的竖式求和，一位一位的相加就可以了。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define INF 1e9

char str[105][105];
int num[105][105];
int ans[10010];

int main(){
int i, j;
int len, count, max = -INF, flag;

i = 0;
while(~scanf("%s", str[i])){
if(str[i][0] == '0')  break;
i++;
}

count = i;
memset(num, 0, sizeof(num));
for(i = 0; i<count; i++){
len = strlen(str[i]);
for(j = 0; j<len; j++){
num[i][len-j] = (str[i][j]-'0');
}
if(max<len)
max = len;
}

memset(ans, 0, sizeof(ans));

for(i = 0; i<count; i++){
for(j = 1; j<=max; j++){
ans[j] += num[i][j];
}
}

for(i = 1; i<10010;i++){
ans[i] += ans[i-1]/10;
ans[i-1] %= 10;
}

flag = 0;
for(i=10009; i>0; i--){
if(flag){
printf("%d", ans[i]);
}
else if(ans[i]){
flag = 1;
printf("%d", ans[i]);
}
}
printf("\n");
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

char str[100];
int num[100];
int ans[10000];

int main(){
int i, j;
int len, flag;

memset(ans, 0, sizeof(ans));
while(~scanf("%s", str)){
len = strlen(str);
memset(num, 0, sizeof(num));
for(i = 0; i<len; i++)
num[len-i] = str[i]-'0';

for(i = 1; i<=len; i++)
ans[i] += num[i];

for(i = 1; i<10000; i++){
ans[i] += (ans[i-1]/10);
ans[i-1] %= 10;
}
}

flag = 0;
for(i=10000-1; i>0; i--){
if(flag)
printf("%d", ans[i]);
else if(ans[i]){
printf("%d", ans[i]);
flag = 1;
}
}
printf("\n");
return 0;
}

• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏 1
• 手机看

分享到微信朋友圈

x

扫一扫，手机阅读

• 打赏

打赏

muller8

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文
03-14 2709

05-05 1595
07-26 471
11-28 22
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客