求1~1000以内的水仙花数,用c语言写
时间: 2024-10-11 07:06:45 浏览: 5
水仙花数是一种特殊的数字,它的每个位上的数字立方后再相加等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
以下是用C语言编写的一个简单程序,用于找出1到1000范围内的所有水仙花数:
```c
#include <stdio.h>
int is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 计算每一位数字的立方和
while (original_num != 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 使用pow函数计算立方
original_num /= 10;
}
// 如果原始数值等于其立方和,则是水仙花数
return sum == num;
}
void find_armstrong_numbers(int start, int end) {
for (int i = start; i <= end; i++) {
if (is_armstrong_number(i)) {
printf("%d ", i);
}
}
}
int main() {
int limit = 1000;
printf("1 到 %d 范围内的水仙花数有:", limit);
find_armstrong_numbers(1, limit);
printf("\n");
return 0;
}
```