在数学中有一种水仙花数,它是指一个3位数,它的每个位上的数字的3次方之和等于它本身(例如: )。编写一个函数,判断一个整数是否是这水仙花数。若是,则返回1,否则返回0。
时间: 2024-12-17 17:19:06 浏览: 12
C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身
在C++中,我们可以创建一个名为`isWaterLilyNumber`的函数来检查一个整数是否是水仙花数。水仙花数的定义要求这个三位数等于其各位数字立方和。以下是一个简单的示例函数:
```cpp
#include <iostream>
bool isWaterLilyNumber(int number) {
if (number < 100 || number > 999) {
return false; // 只考虑三位数
}
int百位 = number / 100;
int十位 = (number % 100) / 10;
int个位 = number % 10;
// 计算每一位的立方和
int sumOfCubes = pow(int 百位), 3) + pow(int 十位), 3) + pow(int 个位), 3);
// 检查是否相等
return sumOfCubes == number;
}
int main() {
int num;
std::cout << "Enter a three-digit number: ";
std::cin >> num;
if (isWaterLilyNumber(num)) {
std::cout << "The number is a Water Lily Number (returns 1)" << std::endl;
return 1;
} else {
std::cout << "The number is not a Water Lily Number (returns 0)" << std::endl;
return 0;
}
}
```
这个函数首先检查输入的数字是否为三位数,然后将其分解成百位、十位和个位,计算它们各自的立方和,最后比较这个和是否等于原始数字。
阅读全文