用C++语言写一个完整代码,输入一个数, 编写一个函数判断一个数是否为水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
时间: 2024-09-08 15:02:55 浏览: 40
```cpp
#include <iostream>
#include <cmath>
// 函数声明,用于判断是否为水仙花数
bool isNarcissistic(int number);
int main() {
int number;
std::cout << "请输入一个三位数: ";
std::cin >> number;
// 调用函数并输出结果
if (isNarcissistic(number)) {
std::cout << number << " 是一个水仙花数。" << std::endl;
} else {
std::cout << number << " 不是一个水仙花数。" << std::endl;
}
return 0;
}
// 函数定义,判断一个数是否为水仙花数
bool isNarcissistic(int number) {
if (number < 100 || number > 999) {
return false; // 不是三位数
}
int originalNumber = number;
int sum = 0;
while (number > 0) {
int digit = number % 10; // 获取最低位的数字
sum += std::pow(digit, 3); // 累加每个位上数字的三次幂
number /= 10; // 移除最低位的数字
}
return sum == originalNumber; // 如果和等于原始数,则是水仙花数
}
```
这段代码定义了一个函数 `isNarcissistic`,用于判断输入的三位数是否为水仙花数。主函数 `main` 负责接收用户输入,并使用 `isNarcissistic` 函数来判断结果,并输出相应的信息。