判断一个数是否为"水仙花数",所谓"水仙花数"是指这样的一类数:其各位数字的立方和等于该数本身。例如:371是一个"水仙花数",371=33+73+13. 输入格式:
时间: 2024-10-21 15:14:29 浏览: 25
要判断一个数是否是“水仙花数”,你需要首先获取该数的每一位数字,然后计算它们各自立方并求和,如果这个和等于原数,那么原数就是“水仙花数”。以下是一个简单的 C++ 函数示例,用于检查给定的整数是否是水仙花数:
```cpp
#include <iostream>
bool is narcissistic(int num) {
int digits[10], sum = 0;
if (num == 0)
return true; // 特殊处理0的情况
while (num != 0) {
digits[sum++] = num % 10; // 获取个位数字
num /= 10; // 移除个位
}
for (int i = 0; i < sum; ++i) {
if (digits[i] != (digits[i] * digits[i] * digits[i])) { // 检查每个立方和是否相等
return false;
}
}
return true; // 如果所有检查都通过,则返回true
}
int main() {
int number;
std::cout << "请输入一个整数: ";
std::cin >> number;
if (is_narcissistic(number))
std::cout << number << " 是水仙花数.\n";
else
std::cout << number << " 不是水仙花数.\n";
return 0;
}
```
在这个程序中,`is_narcissistic`函数负责主要的逻辑,它先将数字分解成个位数组,然后逐个检查这些立方和是否匹配。在主函数中,我们从用户那里接收输入并调用此函数。
阅读全文