请帮我用c语言设计一个求出所有水仙花数的程序
时间: 2024-12-08 07:19:40 浏览: 11
c语言程序设计:水仙花,输出1800~2010间所有的闰年等
在C语言中,我们可以编写一个函数来检查一个数字是否是水仙花数,然后遍历一定的范围找出所有的水仙花数。水仙花数是指那些每一位数字的立方之和等于其本身的三位数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数定义,检查一个整数是否是水仙花数
bool isArmstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num;
while (original_num != 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 计算每位数字的立方并累加
original_num /= 10;
}
if (sum == num)
return true; // 如果相等,则是水仙花数
else
return false;
}
// 主函数,找出指定范围内的所有水仙花数
void findArmstrongNumbers(int start, int end) {
for (int i = start; i <= end; ++i) {
if (isArmstrong(i))
printf("%d ", i);
}
}
int main() {
int range_start = 100; // 水仙花数范围一般从100开始
int range_end = 999; // 直到999
printf("Waterfall numbers in the range [%d, %d] are:\n", range_start, range_end);
findArmstrongNumbers(range_start, range_end);
return 0;
}
```
当你运行这个程序时,它会打印出153, 370, 371, 和 407,这些都是在100到999之间的水仙花数。
阅读全文