输入一个数求水仙花数及个数c++
时间: 2024-09-26 22:08:58 浏览: 45
在C++中,水仙花数(又称 narcissistic number 或 pluperfect digital invariant)是一个整数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要编写一个程序计算输入范围内水仙花数的数量并打印它们,你可以采用以下步骤:
1. 定义函数 `isNarcissistic(int num)` 检查给定的数是否是水仙花数。
2. 使用循环遍历从最小到最大可能的水仙花数范围内的所有整数。
3. 对每个数字调用 `isNarcissistic()` 函数,并计数符合条件的数字。
下面是一个简单的示例代码片段:
```cpp
#include <iostream>
#include <vector>
// 检查一个数是否是水仙花数
bool isNarcissistic(int num) {
int sumOfCubes = 0;
while (num > 0) {
int digit = num % 10;
sumOfCubes += digit * digit * digit;
num /= 10;
}
return sumOfCubes == num;
}
int main() {
int lowerBound = 100; // 设定查找范围下限,如仅考虑三位数
int upperBound = 999; // 设定查找范围上限
int count = 0;
for (int i = lowerBound; i <= upperBound; ++i) {
if (isNarcissistic(i)) {
std::cout << "水仙花数: " << i << std::endl;
++count;
}
}
std::cout << "共有 " << count << " 个水仙花数在范围 [" << lowerBound << ", " << upperBound << "]" << std::endl;
return 0;
}
```
阅读全文