UVA 424 Integer Inquiry

很水的题。。。思路:这么长的数,首先要把他看成是字符串,存在一个字符数组里。(可不可以把它看成紧挨着的N数呢,每次读一个数直接进行加运算,最后的零没法处理,还没想到),让后把字符转换成数字存在整数数组里面,在里面进行运算。

#include<string.h>
//#include<stdlib.h>
#include<stdio.h>
#define MAXN 100 + 10
char s[MAXN];
int num[MAXN];
void solve()
{
int len = strlen(s);
for(int i = 0; i < len; i ++)
{
num[i] += s[len-1-i] - '0';
if(num[i] > 9) {num[i] %= 10; num[i+1] += 1;}
}
}
void output()
{
int i;
for(i = MAXN; i >= 0; i --)
if(num[i] != 0) break;
for(int j = i; j >= 0; j --)
printf("%d",num[j]);
printf("\n");
}
void input()
{
while(scanf("%s",s) == 1)
{
if(s[0] == '0') break;
solve();
}
}
int main()
{
memset(num,0,sizeof(num));
input();
output();
//system("pause");
return 0;
}



原文地址:https://www.cnblogs.com/yuzhaoxin/p/2293997.html