CCF NOI1035. 数根 (C++)

版权声明:代码属于原创,转载请联系作者并注明出处。 https://blog.csdn.net/weixin_43379056/article/details/84935795

1035. 数根

题目描述

数根是这样定义的:对于一个正整数n,将它的各个数位上的数字相加得到一个新数,如果这个数是一位数,我们就称之为n的数根,否则重复处理直到它成为一个一位数。

例如,n=34,3+4=7,7是一位数,所以7是34的数根。

再如,n=345,3+4+5=12,1+2=3,3是一位数,所以3是345的数根。

对于输入数字n,编程计算它的数根。

输入

输入正整数n。

输出

输出n的数根。

样例输入

345

样例输出

3

数据范围限制

1<=n<231

C++代码

#include <iostream>
#include <cassert>

using namespace std;

int main()
{
    int n;

    cin >> n;

    assert(n >= 1);

    int sumOfDigits = 0;

    while(1)
    {
        while(n > 0)
        {
            sumOfDigits += n%10;
            n /= 10;
        }
        if (sumOfDigits < 10)
        {
            break;
        }
        else
        {
            n = sumOfDigits;
            sumOfDigits = 0;
        }
    }

    cout << sumOfDigits << endl;

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43379056/article/details/84935795