用c++水仙花数 个位十位百位 立方和等于这个数本身就是水仙花数
时间: 2024-11-03 13:23:37 浏览: 15
在 C++ 中,判断一个三位数是否为水仙花数(也称为 Narcissistic Number 或者 Pluperfect Digital Invariant),需要检查该数字各个位上数字立方之和是否等于该数字本身。以下是简单的步骤:
1. 定义一个函数 `isNarcissistic` 接收一个整数作为输入。
2. 检查输入是否为三位数,如果不是则返回 false。
3. 将输入转换为字符串以便获取每一位数字。
4. 遍历每位数字,计算它们各自的立方并加总。
5. 如果得到的和等于原始输入,说明它是水仙花数,返回 true;否则返回 false。
下面是一个简化的 C++ 示例代码:
```cpp
#include <iostream>
#include <string>
bool isNarcissistic(int num) {
if (num < 100 || num > 999) return false;
std::string str = std::to_string(num);
int sumOfCubes = 0;
for (size_t i = 0; i < str.length(); ++i) {
char digit = str[i] - '0';
sumOfCubes += std::pow(digit, 3);
}
return sumOfCubes == num;
}
int main() {
int number;
std::cout << "Enter a three-digit number to check if it's a narcissistic number: ";
std::cin >> number;
if (isNarcissistic(number)) {
std::cout << number << " is a narcissistic number.\n";
} else {
std::cout << number << " is not a narcissistic number.\n";
}
return 0;
}
```
阅读全文