输出100到n的水仙花数,如果不存在输出none,用C语言循环实现
时间: 2024-10-14 17:05:20 浏览: 25
基于c语言实现的水仙花数源码.zip
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在C语言中,可以编写一个循环来找出从100到n之间的所有水仙花数,如果找不到,则输出"none"。以下是简单的实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num;
while (num != 0) {
remainder = num % 10;
sum += remainder * remainder * remainder;
num /= 10;
}
return (original_num == sum);
}
void find_armstrong_numbers(int n) {
for (int i = 100; i <= n; ++i) {
if (is_armstrong(i)) {
printf("%d ", i);
} else if (i > n) {
break;
}
}
if (!is_armstrong(i - 1)) {
printf("none\n");
}
}
int main() {
int n;
printf("请输入一个整数n: ");
scanf("%d", &n);
find_armstrong_numbers(n);
return 0;
}
```
在这个程序中,`is_armstrong()`函数用于检查一个数字是否是水仙花数,`find_armstrong_numbers()`函数负责查找并打印符合条件的数。如果输入范围之外没有找到水仙花数,会在遍历结束后输出"none"。
阅读全文