c语言 查找水仙花数
时间: 2024-10-06 19:01:13 浏览: 17
在 C 语言中查找水仙花数是指找出那些所有位数立方和等于本身的正整数。例如,数字 153 的各位数字分别是 1、5 和 3,它们的立方和是 1^3 + 5^3 + 3^3 = 153,所以 153 就是一个水仙花数。
下面是一个简单的 C 程序示例,它会找出给定范围内的所有水仙花数:
```c
#include <stdio.h>
// 函数用于计算三位数的各位数字立方和
int sum_of_cubes(int num) {
int digits[4], sum = 0;
int len = 0;
while (num > 0) {
digits[len++] = num % 10;
num /= 10;
}
for (int i = 0; i < len; i++) {
sum += digits[i] * digits[i] * digits[i];
}
return sum;
}
// 主函数遍历并检查每个三位数是否为水仙花数
void find_water_lilies(int start, int end) {
for (int i = start; i <= end; ++i) {
if (sum_of_cubes(i) == i) {
printf("%d is a Water Lily number.\n", i);
}
}
}
int main() {
int range_start = 100; // 范围通常从100开始,因为0和一位数不是水仙花数
int range_end = 999; // 遍历到最大的三位数
find_water_lilies(range_start, range_end);
return 0;
}
```
运行这个程序后,你可以输入不同的 `range_start` 和 `range_end` 来搜索特定范围内的水仙花数。