C语言1000位以内的水仙花数
时间: 2024-12-23 08:15:21 浏览: 4
水仙花数是一个特殊的整数,其各位数字立方和等于其本身。例如,153是个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,判断一个数是否为水仙花数需要对每一位进行立方并求和,然后比较这个和是否与原数相等。下面是一个简单的函数来找出1000以内所有的水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong_number(int num) {
int orig_num, remainder, sum = 0;
int len = 0;
// 获取数值的位数
while (num != 0) {
len++;
num /= 10;
}
// 检查每个位上的立方和是否等于原数
orig_num = num;
while (orig_num > 0) {
remainder = orig_num % 10;
sum += remainder * remainder * remainder; // 对每一位求立方
orig_num /= 10;
}
return sum == orig_num;
}
int main() {
int i;
printf("水仙花数在1到1000范围内的有:\n");
for (i = 100; i < 1000; i++) {
if (is_armstrong_number(i)) {
printf("%d ", i);
}
}
return 0;
}
```
在这个程序中,`is_armstrong_number` 函数用于检查输入的数是否为水仙花数,而 `main` 函数则遍历100至999之间的所有整数,并打印出符合条件的水仙花数。
阅读全文