c++ 水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:153=1^3+5^3+3^3。用枚举法设计一个程序,求出0到999之间所有的水仙花数。
时间: 2024-09-11 20:06:10 浏览: 28
在C++中,你可以通过枚举法遍历0到999的所有整数,然后对每一位数字分别求立方并相加,如果得到的结果等于原来的数,那么这个数就是水仙花数。下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
bool is narcissistic(int num) {
int digits[3];
int sum = 0;
// 分离每位数字并将它们立方
while (num > 0) {
digits[2] = num % 10;
sum += digits[2]*digits[2]*digits[2];
num /= 10;
}
// 检查是否是水仙花数
return sum == num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_narcissistic(i)) {
cout << i << " 是一个水仙花数.\n";
}
}
return 0;
}
```
在这个代码里,`is_narcissistic()` 函数用于检查一个数是否为水仙花数,`main()`函数则通过循环遍历0到999的范围,找出所有满足条件的数。
相关问题
c++ 水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:153=1^3+5^3+3^3。用枚举法设计一个程序,求出0到999之间所有的水仙花数。
在C++中,可以使用枚举法来找到0到999之间的所有水仙花数。首先,我们需要创建一个循环遍历3位数范围内的每一个整数,然后对每一位的数字进行立方运算并求和。如果这个和等于原始的三位数,那么我们就找到了一个水仙花数。以下是简单的C++代码实现:
```cpp
#include <iostream>
using namespace std;
// 判断是否为水仙花数的函数
bool isPerfectCube(int num) {
int original = num;
int sumOfDigits = 0;
while (num > 0) {
int digit = num % 10;
sumOfDigits += digit * digit * digit;
num /= 10;
}
return sumOfDigits == original;
}
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历三位数
if (isPerfectCube(i)) {
cout << i << " 是水仙花数" << endl;
}
}
return 0;
}
```
在这个程序中,`isPerfectCube` 函数用于检查一个数是否是水仙花数,`main`函数通过循环遍历并判断每个数是否满足条件。
用C++语言写一个完整代码,输入一个数, 编写一个函数判断一个数是否为水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
```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` 函数来判断结果,并输出相应的信息。