Digital Roots
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 65378 Accepted Submission(s): 20386
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<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[10000];
while (cin >> str)
{
if (str[0] == '0')break;
int len = strlen(str);
long long sum = 0, n;
for (int i = 0; i < len; i++)
sum += (long long)(str[i] - '0');
while (sum >= 10 || sum == 0)
{
if (sum >= 10)
{
n = sum;
sum = 0;
}
int x;
while (n)
{
x = n % 10;
n = n / 10;
sum += x;
}
}
cout << sum << endl;
}
return 0;
}
529



被折叠的 条评论
为什么被折叠?



