水仙花数是指一个N位正整数(N > 3),它的每个位上的数字的N 次幂之和等于它本身。例如:153 = 1°十5°+ 3°。本题要求编写程序,计算所有N位水仙花数。用c语言编写
时间: 2024-11-21 11:30:49 浏览: 17
水仙花数是一个经典的编程练习题目,用于熟悉循环、条件判断以及数值操作。以下是用C语言编写的一个简单示例,用于计算指定范围内的水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义函数检查是否是水仙花数
bool is narcissistic(int num) {
int order = 3; // 由于题目只考虑3位及以上的整数,所以order固定为3
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += pow(digit, order); // 使用pow函数计算幂次
num /= 10;
}
return sum == num;
}
int main() {
int start = 100; // 考虑的最小3位数
int end = 999; // 考虑的最大3位数
printf("水仙花数有:\n");
for (int i = start; i <= end; ++i) {
if (is_narcissistic(i)) {
printf("%d ", i);
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个`is_narcissistic`函数,它接受一个数字作为输入并计算其各位数字的立方和。然后,在`main`函数里,遍历从100到999的所有整数,如果某个数是水仙花数,就打印出来。
阅读全文