帮我写一个“输出100-999之间的所有水仙花数”的C语言程序
时间: 2024-09-26 09:06:11 浏览: 31
当然可以,这里是一个简单的C语言程序,用于找出100到999范围内的水仙花数(即一个三位数,其各位数字立方和等于该数本身):
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num) {
int digits[3], sum = 0;
bool has_digits[3] = {false, false, false};
// 分离出每一位数字并计算它们的立方和
while (num > 0) {
digits[2] = num % 10;
sum += pow(digits[2], 3);
has_digits[2] = true;
num /= 10;
if (num > 0) {
digits[1] = num % 10;
sum += pow(digits[1], 3);
has_digits[1] = true;
num /= 10;
}
if (num > 0) {
digits[0] = num;
sum += pow(digits[0], 3);
has_digits[0] = true;
}
}
// 检查如果所有的位都有并且它们的立方和等于原数,则它是水仙花数
return sum == num && has_digits[0] && has_digits[1] && has_digits[2];
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong(i)) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
阅读全文