POJ 1503

http://poj.org/problem?id=1503

对于这个题我也是醉了,因为最开始是有学长和我们说过这个题目的,我以为我记得题目是什么意思,也就没看题目,结果按案例去理解题意,结果WA了一晚上,我也是醉醉哒。

最后今天才在discuss发现是我的理解题意错了,改下,就对了。给我一个很大的教训。。。。。

题意很简单,,就是一组大整数的加法而已,终止的标志就是只有一个0输入。

 #include <stdio.h>
#include <string.h> char str[]={};
int a[]={},sum[]={}; int main()
{
while(scanf("%s",str)&&strcmp(str,"")){
int len=strlen(str);
for(int i=,j=len-;i<len;i++,j--) //我用一个a数组的目的就是反正前导0的出现。因为我的数据是从开始到末尾是倒过来的,所以前导0在之后的加法中也是在后面了,不起任何作用。
a[i]=str[j]-'';
for(int i=;i<=;i++){
sum[i]+=a[i];
if(sum[i]>=) {
sum[i+]++;
sum[i]-=;
}
}
memset(str,,sizeof(str)); //初始化,反正之后的str数组较小,只替代了部分之前的str数组。
}
for(int i=,j=;i>;i--){
if(sum[i]==) {
j--;
}
if(i!=j)printf("%d",sum[i]);
}
printf("%d\n",sum[]);
return ;
}
上一篇:Android学习开发中如何保持API的兼容


下一篇:apache加载php配置