C++水仙花数也称阿姆斯特朗数,是指一个n位正整数(n≥3),其各位数字的n次幂之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153,请找出所有的三位水仙花数。
时间: 2024-12-10 20:38:31 浏览: 41
水仙花数,也称为阿姆斯特朗数,是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身 例如,153 是
在C++中,寻找所有的三位水仙花数可以通过遍历每一位数字并计算它们的立方和来实现。下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
bool isArmstrongNumber(int number) {
int original_num, remainder, result = 0, n = 0;
original_num = number;
// 计算位数
while (original_num > 0) {
remainder = original_num % 10;
result += pow(remainder, 3);
n++;
original_num /= 10;
}
// 如果原始数值等于其各位立方和,则为水仙花数
return result == original_num;
}
int main() {
for (int i = 100; i < 1000; ++i) { // 仅考虑三位数
if (isArmstrongNumber(i))
cout << i << " ";
}
return 0;
}
```
这段代码首先定义了一个`isArmstrongNumber`函数,它接收一个数字作为输入,然后检查它的各位数字的三次方和是否等于原数。在主函数中,我们遍历100到999之间的所有数,对每个数调用`isArmstrongNumber`,并打印出符合条件的水仙花数。
阅读全文