用c++判断一个数是否是水仙花数
时间: 2024-10-22 20:17:18 浏览: 25
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在C++中,你可以通过循环结构和条件判断来检查一个整数是否是水仙花数。以下是简单的步骤:
```cpp
#include <iostream>
#include <cmath>
bool is NarcissisticNumber(int num) {
if (num < 100 || num > 999) { // 只考虑三位数
return false;
}
int digits[3];
int sum = 0;
// 分割百位、十位和个位
int temp = num;
while (temp > 0) {
digits[0] = temp % 10;
digits[1] = (temp / 10) % 10;
digits[2] = temp / 100;
temp /= 100;
}
// 检查每一位立方和是否等于原数
for (int i = 0; i < 3; ++i) {
if (digits[i]^digits[i]) { // 如果当前位为0,则不影响结果
sum += std::pow(digits[i], 3);
}
}
return sum == num;
}
int main() {
int num;
std::cout << "请输入一个三位数:";
std::cin >> num;
if (is NarcissisticNumber(num)) {
std::cout << num << " 是水仙花数。\n";
} else {
std::cout << num << " 不是水仙花数。\n";
}
return 0;
}
```
阅读全文