您的位置:首页 > 其它

HDU—— 1013 Digital Roots

2014-11-15 12:43 375 查看
题意:整数的树根,即当整数不为单独的数字时将各个位上的数字相加,直到为单个数字时输出此时的数字。

解题思路:利用字符串进行处理,详见代码:

Code:
#include <iostream>
#include <string>
using namespace std;
string add(string &a)
{
string result;
int c=0,i,carry=0,len=a.size();
c=(a[len-1]-'0');
for(i=len-2;i>=0;--i)
{
c+=(a[i]-'0');
if(c>10)
{
carry=c/10;
c%=10;
result.push_back(carry+'0');
}
}
result.push_back(c+'0');
return result;
}
int main()
{
string result;
while(cin>>result)
{
if(result=="0") break;
else
{
while(result.size()>1)
result=add(result);
cout<<result<<endl;
}
}
return 0;
}
再来个经典的代码:

#include<stdio.h>
int main()
{
int i,m;
char s[1000];
while(scanf("%s",s)==1&&s[0]!='0'){
for(m=i=0;s[i];i++)
m+=s[i]-'0';
printf("%d\n",m%9==0?9:m%9);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: