http://acm.hdu.edu.cn/showproblem.php?pid=1013
题目简述:输入一串数字,求它的根,根的定义:将各位数字相加,如果和小于10,则为根,否则,继续将和的各位数相加,知道和小于10.
Input
24
39
0
Output
6
3
代码:
解释(sum-1)%9+1;
如果要将一个数n变成1~9之间的数,(n-1)%9+1就行了
举个例子吧!
假如输入的数是7896768;
可以这样做:
(7+8+9+6+7+6+8-1)%9+1=6;
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int sum;
string str;
while(cin>>str,str[0]!='0')
{
sum=0;
int k=str.size();
while(k) sum+=str[--k]-'0';
cout<<(sum-1)%9+1<<endl;
}
return 0;
}
浙公网安备 33010602011771号