c++ 水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:153=1^3+5^3+3^3。用枚举法设计一个程序,求出0到999之间所有的水仙花数。
时间: 2024-09-11 14:06:46 浏览: 87
在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次幂之和等于它本身。 编写程序,打印水仙花散。
在C++中,我们可以编写一个简单的程序来查找并打印所有的水仙花数。水仙花数也称为 Narcissistic Number 或者 Pluperfect Digital Root,其特点是每一位的立方和等于该数本身。以下是创建这个程序的一个例子:
```cpp
#include <iostream>
using namespace std;
// Function to check if a number is a narcissistic number
bool isNarcissistic(int num) {
int sum = 0;
int temp = num;
// Calculate the sum of cubes of each digit
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
// If the sum equals the original number, it's a narcissistic number
return (sum == num);
}
int main() {
for (int i = 100; i <= 999; ++i) { // Iterate through 3-digit numbers
if (isNarcissistic(i)) {
cout << i << " ";
}
}
cout << endl;
c++ 水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:153=1^3+5^3+3^3。用枚举法设计一个程序,求出0到999之间所有的水仙花数。
在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的范围,找出所有满足条件的数。
阅读全文