前言
题目:给定一个非负整数 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;
}
}
}
结果如图所示:

本文介绍了一个编程问题,即如何将非负整数反复将各位数字相加,直至结果为一位数。通过示例和代码解析,展示了如何通过不断求和并判断是否小于10来实现这一过程。代码中定义了两个函数,`get_val`用于获取数字各位之和,`addDigits`则用于执行循环相加操作,直到结果为一位数。
954

被折叠的 条评论
为什么被折叠?



