前言
题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
一、示例
二、思路和代码
1.思路
把那个数字的各个位置的数求出来,然后相加得到总数,倘若大于10,则继续把总数的各个位置的数求出来,再相加,直到小于10.
2.代码
代码如下(示例):
int get_val(int n) {
int sum = 0, a;
while(n) {
a = n % 10;
sum = sum + a;
n /= 10;
}
return sum;
}
int addDigits(int num){
if(0 == num) {
return 0;
}
int n = num;
while(1) {
n = get_val(n);
if(n < 10) {
return n;
}
}
}
结果如图所示: