569. 各位相加
题目:
给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例
例1:
输入:
num=38
输出:
2
解释:
过程如下: 3 + 8 = 11, 1 + 1 = 2. 因为 2 只有一个数字,返回 2.
例2:
输入:
num=9
输出:
9
解释:
9<10,返回 9.
解题思路:‘
1.把各个位的数字分离出来,再加起来就好了,就一个while循环。
2.看看1的结果是否大于等于10,是的话再重复1的循环。不是直接输出结果。
需要注意的点:
sum累计后要清0;
int addDigits(int num) {
// write your code here
int sum=0;
while(num>=10)
{
while(num>0)
{
sum+=num%10;
num=(num-num%10)/10;
}
num=sum;
sum=0;
}
cout<<num<<endl;
return num;
}