CCF NOI1035. 數根 (C++)
阿新 • • 發佈:2018-12-11
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;
}