【问题描述】
输入一个正整数(1-2100000000),求该正整数的各位数字之和,如果各数字之和仍为两位数及以上,继续求其各位数字之和,直到数字之和为1位整数为止。
【输入形式】
输入的正整数的范围为1-2100000000
【输出形式】
输出为1-9之间的一个数
【样例输入】
32456
【样例输出】
2
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
int sum = 0;
while (n > 0)
//使用循环计算n的各位数字之和,循环的过程中使用取模和整除操作将数字从高位到低位依次取出并加入到sum中。
{
sum += n % 10;
n /= 10;
}
while (sum > 9)
//当计算完n的所有数字之后,如果sum仍然大于9,则继续进行循环,将sum的个位和十位相加,直到sum小于等于9为止。
{
sum = sum % 10 + sum / 10;
}
cout << sum << endl;
return 0;
}