输入两个正整数m和n,输出m~n之间所有水仙花数,定义并调用函数is(number)判断number的各位数字之立方和是否等于本身
时间: 2024-10-10 15:09:57 浏览: 75
JS判断一个数是否是水仙花数
在C语言中,为了找出范围内的水仙花数,我们需要编写一个函数`is_water_lily(number)`来检查一个数字是否满足水仙花数的条件,即其各位数字的立方和等于该数字本身。接下来是一个完整的程序,包括输入、处理以及输出:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型
// 判断一个数是否是水仙花数
bool is_water_lily(int number) {
int digits[4]; // 假设最大位数不超过3位
int sum_of_cubes = 0;
// 将数字分解成数组,计算各位置的立方和
while (number != 0) {
digits[3] = number % 10;
sum_of_cubes += digits[3] * digits[3] * digits[3];
number /= 10;
}
// 检查立方和是否等于原数
return sum_of_cubes == number;
}
int main() {
int m, n, number;
printf("请输入两个正整数(m and n): ");
scanf("%d %d", &m, &n);
printf("m~n之间的水仙花数:\n");
for (number = m; number <= n; number++) {
if (is_water_lily(number)) {
printf("%d ", number);
}
}
return 0;
}
```
这个程序首先从用户那里获取两个正整数`m`和`n`,然后遍历这个范围,对每个数字调用`is_water_lily()`函数,如果是水仙花数,则输出。
阅读全文