求100---999中的水仙花数(若三位数 abc,满足a3+b3+c3=abc,则称abc为水仙花数,如153,满足 13+53+33=153,所以153为水仙花数。
时间: 2024-10-24 19:12:11 浏览: 1
要编写一个C++程序来找出100到999之间的所有水仙花数,我们可以遍历这个范围内的每个三位数,然后检查它们是否满足水仙花数的条件。水仙花数定义为每个位上的数字立方和等于整个数本身。以下是一个简单的解决方案:
```cpp
#include <iostream>
bool isArmstrongNumber(int num) {
int original_num = num;
int sum = 0;
int temp = num;
// 分解每一位数字并计算其立方
while (temp != 0) {
int digit = temp % 10;
sum += std::pow(digit, 3);
temp /= 10;
}
// 如果原始数等于立方和,那么它是水仙花数
return original_num == sum;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (isArmstrongNumber(i)) {
std::cout << i << " 是水仙花数.\n";
}
}
return 0;
}
```
这段代码首先定义了一个`isArmstrongNumber`函数,用于检查给定的整数是否是水仙花数。然后在`main`函数中,我们使用一个for循环遍历从100到999的数字,对每个数调用`isArmstrongNumber`进行判断,如果返回`true`,就输出该数。
阅读全文