给定一个非负整数 num
,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
my code:忽略了num为零;不知道如何对不为一位数的结果再次循环;
正解:
int addDigits(int num){
while(1){
int ans = 0;
while(num){
ans += num % 10;
num /= 10;
}
if(ans < 10){
return ans;
}
num = ans;
}
}
领悟:可以在结果不满足,仍要继续相同循环时外套死循环,直到出结果,适用于内部一定可以得到结果的循环,或者是可以用递归做的循环