Digital Roots
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 20803 Accepted Submission(s): 6169
For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.
24 39 0
6 3
#include<stdio.h>
int fan(int n)
{
int sum=0;
while(n!=0)
{
sum+=n%10;
n=n/10;
}
if(sum<10)return sum;
else return fan(sum);
}
int main()
{
char ch[1009];
int i,sum;
while(gets(ch),ch[0]!='0')
{
sum=0;
for(i=0;ch[i]!='\0';i++)
sum+=ch[i]-'0';
if(sum<10)printf("%d\n",sum);
else
printf("%d\n",fan(sum));
}
return 0;
}