请以“计算任意位正整数的各位数字平方和。”为目的写一个C++源程序
时间: 2023-06-03 12:02:40 浏览: 98
求正整数各位数字之和
请参考以下C代码:
```c
#include <stdio.h>
int digit_sum(int n) {
if (n < 10) {
return n * n;
} else {
int d = n % 10;
return d * d + digit_sum(n / 10);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的各位数字的平方和为:%d\n", n, digit_sum(n));
return 0;
}
```
这段代码实现了计算任意位正整数的各位数字平方和的功能。首先,定义了一个递归函数`digit_sum`,它接收一个正整数`n`,并返回它各位数字的平方和。如果`n`只有一位数,直接计算并返回该数字的平方;否则,取出`n`的个位数字`d`,计算`d`的平方加上剩余数字的平方和,然后递归地调用`digit_sum`函数即可。
在`main`函数中,先从用户输入一个正整数`n`,然后调用`digit_sum`函数计算各位数字的平方和,并输出结果。
阅读全文