您的位置:首页 > 产品设计 > UI/UE

UVa - 424 Integer Inquiry

2015-08-09 14:11 429 查看
解题感悟:

char类型只可保存小于128的数,超出的话会溢出,所以每读入一个大数,加完后需要马上进位,否则数目一多,很大可能会溢出,这时就只能 WA 了 (说多了都是泪啊/(ㄒoㄒ)/~~);

注意特殊数据 ,例如 0000 00001;

#include<stdio.h>
#include<string.h>
#define MAXN 105

char bigint[MAXN],sum[MAXN];

int main(void){

memset(bigint,0,sizeof(char)*MAXN);
memset(sum,'0',sizeof(char)*MAXN);
sum[MAXN]='\0';

int i,k,len;

while(scanf("%s",bigint) ){
len=strlen(bigint);
if(len==1 && bigint[0] == '0')
break;
for(i=len-1,k=MAXN-1;i>=0;--i,--k)
sum[k] += bigint[i]-'0';

for(i=MAXN-1;i>0;--i){
int temp=sum[i]-'0';
sum[i-1] += temp / 10;
sum[i] = temp % 10 +'0';
}
}

for(i=0;i<MAXN;++i)
if(sum[i]!='0' || i == MAXN - 1)
break;
puts(sum+i);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: