输入一个整数,判断它是不是水仙花,是水仙花数,输出yes,不是水仙花数,输出no,如果不是一个三位数,输出error
时间: 2024-09-25 12:18:32 浏览: 53
水仙花数(Narcissistic Number)也称为自恋数或超完美数字,是指一个n位正整数等于其各个位上的数字的n次方之和。例如,153是一个水仙花数,因为 \(1^3 + 5^3 + 3^3 = 153\)。
以下是C++代码,用于判断一个整数是否为水仙花数:
```cpp
#include <iostream>
#include <cmath>
bool is_narcissistic(int number) {
// 检查是否是三位数
if (number < 100 || number >= 1000) {
return false;
}
// 将数字分解到个位、十位和百位
int hundreds = number / 100;
int tens = (number % 100) / 10;
int units = number % 10;
// 计算每个位上数字的立方和
int sum_of_cubes = std::pow(hundreds, 3) + std::pow(tens, 3) + std::pow(units, 3);
// 判断是否相等
return sum_of_cubes == number;
}
int main() {
int input;
std::cout << "Enter a three-digit integer: ";
std::cin >> input;
if (is_narcissistic(input)) {
std::cout << "yes" << std::endl;
} else {
std::cout << "no" << std::endl;
}
return 0;
}
```
阅读全文