编写一个判断水仙花的函数,所谓水仙花数是指一个三位数的立方和等于该数的本身,例如153是一个水仙花数,因为。通过主函数调用该函数求100~999之间的全部水仙花数。用c语言
时间: 2024-12-17 17:29:46 浏览: 21
在C语言中,你可以编写一个函数`is narcissistic_number()`来检查一个数字是否是水仙花数。首先,我们需要创建一个辅助函数`cube_sum(n)`来计算一个整数n的各个位立方之和。然后,我们定义主函数`main()`遍历100到999范围内的每个数,并调用`is narcissistic_number()`函数进行检验。
```c
#include <stdio.h>
// 辅助函数,计算输入数字各位立方之和
int cube_sum(int n) {
int sum = 0;
while (n != 0) {
int digit = n % 10; // 取最后一位
sum += digit * digit * digit; // 立方并累加
n /= 10; // 移除最后一位
}
return sum;
}
// 判断一个数字是否是水仙花数
int is_narcissistic_number(int num) {
if (num < 100 || num > 999) {
return 0; // 超出范围,非水仙花数
} else {
return cube_sum(num) == num; // 检查立方和是否等于原数
}
}
// 主函数,寻找并打印水仙花数
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_narcissistic_number(i)) {
printf("%d 是水仙花数\n", i);
}
}
return 0;
}
```
阅读全文