努力ing
你浪费的今天是昨天死去的人所渴望的明天!!!

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;
}

 

posted on 2013-05-30 20:55  努力ing  阅读(161)  评论(0)    收藏  举报