写个C语言给定一个非负整数N,反复将各个位上的数字相加,直到结果为一位数。 例如N = 38: 3+8 = 11 1+1 =2
时间: 2024-10-13 09:07:36 浏览: 43
给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数 .pdf
在C语言中,你可以通过一个循环和一些简单的算术操作来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
// 定义一个函数,接收一个整数作为输入并返回结果
int addDigits(int num) {
if (num >= 10) { // 如果数字大于等于10
return addDigits(num / 10) + (num % 10); // 将十位和个位相加,然后递归处理剩下的位
} else {
return num; // 如果数字是一位数,直接返回
}
}
int main() {
int N;
printf("请输入一个非负整数: ");
scanf("%d", &N);
// 反复将各个位上的数字相加,直到结果为一位数
while (addDigits(N) > 9) {
N = addDigits(N);
}
printf("最终结果是: %d\n", N);
return 0;
}
```
在这个程序中,`addDigits` 函数负责每次迭代都把输入数字分解成个位和十位,然后对它们求和,并继续此过程,直到结果是一位数。
阅读全文