(c++程序设计)求100~999之间的水仙花数。所谓水仙花数,是指一个三位数,它的每位数字的立方之和等于该数。例如,因为,所以153为水仙花数。
时间: 2024-11-05 22:28:23 浏览: 56
在C++程序设计中,求100到999范围内的水仙花数可以通过循环遍历每一位数字并计算其立方和,然后检查这个和是否等于原数本身。以下是简单的代码实现:
```cpp
#include <iostream>
#include <cmath>
bool isWaterLily(int num) {
int first = num / 100; // 取百位
int second = (num % 100) / 10; // 取十位
int third = num % 10; // 取个位
// 计算每个位置数字的立方和
int sum = std::pow(first, 3) + std::pow(second, 3) + std::pow(third, 3);
return sum == num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (isWaterLily(i)) {
std::cout << i << " 是水仙花数。\n";
}
}
return 0;
}
```
在这个程序里,`isWaterLily` 函数负责检查给定的整数 `num` 是否为水仙花数,如果符合条件,它会返回 `true`,反之返回 `false`。`main` 函数则通过循环遍历100到999的每一个数,调用 `isWaterLily` 来查找水仙花数。
相关问题
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++程序:输出100到1000以内是“水仙花数”的所有三位数。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。例如:153=111+555+333
以下是C程序的实现:
```c
#include <stdio.h>
int main()
{
int i, j, k, n;
for(n=100; n<=999; n++)
{
i = n / 100; // 获取百位数
j = n / 10 % 10; // 获取十位数
k = n % 10; // 获取个位数
if(n == i*i*i + j*j*j + k*k*k) // 判断是否为水仙花数
{
printf("%d\n", n); // 输出水仙花数
}
}
return 0;
}
```
希望对您有所帮助。
阅读全文
相关推荐

















