题目链接:http://poj.org/problem?id=1519
题目大意就是,给你一个整数,求它的数字根,数字根的定义就是如果这个数小于10,则它就是数字根,若大于等于10则要把它的各个位上的数字加起来,若仍大于等于10,则重复这个过程,直至小于10。例,整数24,大于等于10,2+4=6,6就是这个数数字根;整数39,3+9=12,1+2=3,3就是数字根。
这个题有个神奇的规律,我也是看了别人的解题报告,就是先把这个整数的各个位上的数加起来对9取模就是数字根。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,sum,b,n;
char a[2000];
while(1){
scanf("%s",a);
if(strcmp(a,"0")==0)
break;
n=strlen(a);
sum=0;
for(i=0;i<n;i++)
sum+=a[i]-'0';
b=sum%9;
if(b==0)
b=9;
printf("%d\n",b);
}
return 0;
}