这个是在网上搜的,可惜提交也是WA,而且我还看不懂
#include
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int i, n;
char digit[1023];
while (1)
{
gets(digit);
for (n = 0, i = 0; digit[i] != '/0'; i ++)
n += digit[i] - 48;
if (!n) break;
while (n > 9)
{
for (i = 0; n; n /= 10) i += n % 10;
n = i;
}
printf("%d/n", n);
}
return 0;
}
这个是我自己写的,竟然是个Compilation Error,错哪儿?
#include
#include
#define MAX 80
//取余法分离,如果数据量太大,肯定会超时。字符串分离较省时
//对于32位无符号正整数,最大9999999999,第一次求所有位和是90,因此第一轮求和是关键
int n;
char s[MAX];
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int i;
int sum;
while(scanf("%s",s)==1)
{
sum=0;
if(s[0]=='0')
break;
else
{
for(i=0;i
{
switch(s[i])
{
case'1':
sum+=1;
break;
case'2':
sum+=2;
break;
case'3':
sum+=3;
break;
case'4':
sum+=4;
break;
case'5':
sum+=5;
break;
case'6':
sum+=6;
break;
case'7':
sum+=7;
break;
case'8':
sum+=8;
break;
case'9':
sum+=9;
break;
}
}
while(1==1)
{
if(sum<10)
{
printf("%d/n",sum);
break;
}
else
sum=sum/10+sum%10;
}
}
}
return 0;
}