C语言,模块化的用子函数实现求1000以内所有的水仙花数的判断
时间: 2024-12-11 12:27:53 浏览: 11
C语言中,模块化地实现寻找1000以内所有水仙花数(也称为 narcissistic number 或者 Armstrong number,其各位数字的立方和等于该数本身)可以分为以下几个步骤:
1. **定义子函数**:
- 定义一个名为 `is_narcissistic` 的函数,它接收一个整数作为输入参数,并计算其各位数字立方之和。
- 如果和等于原始数,返回 `true`;否则,返回 `false`。
```c
int is_narcissistic(int num) {
int sum = 0;
int temp = num; // 取出个位
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10; // 移除个位
}
return sum == num;
}
```
2. **主程序循环**:
- 创建一个主函数,比如 `main()`,遍历从1到999的所有整数,对每个数调用 `is_narcissistic` 函数检查是否为水仙花数。
- 如果找到,将这个数打印出来。
```c
#include <stdio.h>
// 主函数
int main() {
for (int i = 100; i < 1000; ++i) {
if (is_narcissistic(i)) {
printf("%d 是水仙花数.\n", i);
}
}
return 0;
}
```
阅读全文