题目
给定一个非负整数
num,反复将各个位上的数字相加,直到结果为一位数。
输入: num = 0
输出: 0
代码分析
public int addDigits(int num) {
while (num > 9) {
int t = 0;
while (num != 0) {
t += num % 10;
num /= 10;
}
num = t;
}
return num;
}
代码分析
首先判断输入的数字是否大于9,如果大于9,则进入外部循环。在外部循环中,定义一个临时变量 t 并初始化为0,然后进入内部循环。在内部循环中,通过对输入的数字不断进行取余操作,将每一位的数字加到 t 上,并将输入的数字除以10以去掉最后一位。一直循环执行,直到输入的数字变为0。然后将 t的值赋给输入的值,继续进行下一次外部循环。一直执行外部循环,直到输入的数字变为一个个位数。这个个位数就是我们要的结果。