C语言求任意范围内水仙花数
时间: 2024-11-09 18:29:11 浏览: 11
C语言变种水仙花数.zip
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
要编写一个C程序来找出指定范围内的所有水仙花数,你可以采用以下步骤:
1. 定义一个函数`is_armstrong_number()`,它接受一个整数作为参数,检查这个数是否是水仙花数。
2. 使用for循环遍历指定范围内的每个三位数,从最小的三位数到最大的三位数。
3. 对于每个三位数n,计算每一位的立方和,如果结果等于n,则返回true,表示找到了一个水仙花数。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <math.h>
int is_armstrong_number(int num) {
int sum = 0, original_num, remainder;
// 计算原数
original_num = num;
while (original_num > 0) {
remainder = original_num % 10; // 取余数
sum += pow(remainder, 3); // 立方并累加
original_num /= 10; // 移除最后一位
}
if (sum == num)
return 1;
else
return 0;
}
int main() {
int start_range, end_range;
printf("请输入水仙花数的范围(起始和结束):");
scanf("%d %d", &start_range, &end_range);
printf("在%d到%d之间的水仙花数有:\n", start_range, end_range);
for (int i = start_range; i <= end_range; ++i) {
if (is_armstrong_number(i)) {
printf("%d ", i);
}
}
return 0;
}
```
阅读全文