HDU1013 Digital Roots

简介:
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1013

#include <iostream>

#include <string>

using namespace std;

void DigitRoot(int n)

{

int tmp;

int sum = 0;

while (n!=0)

{

tmp = n%10;

sum += tmp;

n = n/10;

}

if(sum>=0&&sum<=9)

{

cout<<sum<<endl;

return;

}

else

{

DigitRoot(sum);

}

}

int main(int argc, char *argv[])

{

string strNum;
int i,num;
while(cin>>strNum&&strNum!="0")
{
    num = 0;
    int len = strNum.length();
    for (i=0;i<len;++i)
    {
        num += strNum[i]-'0';
    }
    DigitRoot(num);
}
return 0;

}

就是输入要注意下,正整数可能很大,不能直接用int承载,得用字符串。



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/12/28/1018311.html,如需转载请自行联系原作者
目录
相关文章
HDOJ 1013 Digital Roots
HDOJ 1013 Digital Roots
111 0
|
机器学习/深度学习
HDOJ 1163 Eddy's digital Roots(九余数定理的应用)
HDOJ 1163 Eddy's digital Roots(九余数定理的应用)
108 0
|
机器学习/深度学习 自然语言处理
|
Java
HDU 1013 Digital Roots【字符串,水】
Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 79339    Accepted Submission(s)...
1112 0