#include <iostream>
using namespace std;
int summing(int n);
int main ()
{
string s;
int sum;
while (cin>>s)
{
if (s == "0") break;
sum = 0;
for (int i = 0; i < s.size(); 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 (sum > 9) sum = sum / 10 + sum % 10; //第二次把所有的位数相加一定很少位数
cout<<sum<<endl;
}
return 0;
}
分别取出整数位,判断它是不是某个数,而不要采用求余的方式。
ZOJ Problem Set - 1115 Digital Roots
最新推荐文章于 2015-08-27 22:11:51 发布