给出一个数N,求每个位相加的和sum,一直到sum《10;
读入要用到字符串,因为给的数据中可能有很大的数字int,甚至于__int64都存不下。
#include <stdio.h>
#include <string.h>
int main()
{
char str[100000];
while(scanf("%s",str)!=EOF)
{
if(strcmp(str,"0")==0) break;
int N=0;
int sum=0;
int len=strlen(str);
for(int i=0;i<len;i++)
N+=(str[i]-'0');
while(1)
{
sum=0;
while(N)
{
sum+=N%10;
N/=10;
}
if(sum<10)
break;
N=sum;
}
printf("%d\n",sum);
}
return 0;
}