水仙花数(Narcissistic number)是指一个三位数,其各个位上数字的立方和等于该数本身。比如153就是水仙花数,因为 \(1^3 + 5^3 + 3^3 = 153\)。
以下是一个C语言程序,用于判断一个三位数是否为水仙花数,并输出100到999范围内的所有水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, hundreds, tens, units;
printf("100到999之间的水仙花数有:\n");
for (num = 100; num <= 999; num++) {
// 获取个位、十位和百位的数字
hundreds = num / 100; // 百位
tens = (num / 10) % 10; // 十位
units = num % 10; // 个位
// 判断是否满足水仙花数条件
if (pow(hundreds, 3) + pow(tens, 3) + pow(units, 3) == num) {
printf("%d\n", num); // 输出水仙花数
}
}
return 0;
}
```
### 代码说明
1. **循环范围**:使用 `for` 循环遍历 100 到 999 的所有三位数。
2. **提取数字位**:分别提取百位、十位和个位数字。
3. **判断条件**:使用立方计算 (`pow`) 判断百位、十位和个位的立方和是否等于原数。
4. **输出水仙花数**:符合条件的数即为水仙花数,输出结果。
### 程序运行结果
运行程序后,输出的结果应为100到999之间的水仙花数,例如 `153`、`370`、`371`、`407`。
标签:pow,999,百位,num,实操,100,水仙花,解答 From: https://blog.csdn.net/zhaoshanshan168/article/details/143303937