输入一个整数,判断它是不是水仙花数
时间: 2024-09-25 15:18:23 浏览: 44
水仙花数是指一个三位数(百位、十位、个位各不相同),其各位数字立方之和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
以下是一个简单的 C++ 程序,用于判断一个给定的整数是否为水仙花数:
```cpp
#include <iostream>
#include <cmath>
bool is narcissistic(int num) {
if (num < 100 || num > 999) {
return false; // 水仙花数必须是三位数
}
int digits[3];
int sum_of_cubes = 0;
// 分割数字并计算每个位上的立方和
for (int i = 1; i <= 3; i++) {
digits[i - 1] = num % 10;
sum_of_cubes += std::pow(digits[i - 1], 3);
num /= 10;
}
// 如果所有位的立方和等于原数,那么它是水仙花数
return sum_of_cubes == num;
}
int main() {
int input;
std::cout << "Enter a three-digit number: ";
std::cin >> input;
if (is_narcissistic(input)) {
std::cout << input << " is a Narcissistic number.\n";
} else {
std::cout << input << " is not a Narcissistic number.\n";
}
return 0;
}
```
阅读全文