`
phinecos
  • 浏览: 342832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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承载,得用字符串。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics