如果一个3位数等于其各位数字的立方和,则称 这个数为水仙花数。用c++编写一个程序,找出全部的水 仙花数。例如407=43+03+73
时间: 2024-11-12 19:45:48 浏览: 23
在C++中,可以编写一个简单的循环程序来找出所有的水仙花数。这里是一个示例代码:
```cpp
#include <iostream>
using namespace std;
bool isWaterLily(int num) {
int digits[3];
int sum = 0;
// 分割三位数
while (num > 0) {
digits[2] = num % 10; // 取个位
num /= 10;
sum += digits[2] * digits[2] * digits[2]; // 立方和并累加
}
// 检查是否相等
return sum == num;
}
int main() {
int start = 100; // 开始检查从100开始的三位数
for (int i = start; i <= 999; ++i) {
if (isWaterLily(i)) {
cout << i << " 是一个水仙花数" << endl;
}
}
return 0;
}
```
相关问题
用c++编写输出所有的水仙花数,所谓水仙花数指的是一个3位数,其各位数字立方和等于该数本身。
在 C++ 中,我们可以编写一个程序来找出所有的水仙花数。这里是一个简单的示例,它会遍历从 100 到 999 的所有整数,并检查它们是否满足水仙花数的条件。
```cpp
#include <iostream>
// 计算一个三位数的各位数字立方和
int sumOfCubes(int num) {
int hundred = num / 100;
int ten = (num % 100) / 10;
int unit = num % 10;
return hundred * hundreds + ten * tens + unit * units;
}
bool is narcissistic(int num) {
return sumOfCubes(num) == num;
}
// 主函数,输出所有水仙花数
void printNarcissisticNumbers() {
for (int i = 100; i <= 999; ++i) {
if (isNarcissistic(i)) {
std::cout << i << " ";
}
}
}
int main() {
printNarcissisticNumbers();
return 0;
}
```
当运行这个程序,它将打印出所有的水仙花数:
```
153 370 371 407
c++请编写程序输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 例如,153是一水仙花数,因为153=1^3+5^3+3^3
在C++中,你可以编写一个函数来检查每个三位数是否是水仙花数。以下是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
bool is narcissistic(int num) {
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += pow(digit, 3); // 使用pow计算立方
num /= 10;
}
return sum == num; // 检查原数和其立方和是否相等
}
void printNarcissisticNumbers() {
for (int i = 100; i <= 999; ++i) { // 遍历3位数
if (is Narcissistic(i)) {
cout << i << " ";
}
}
}
int main() {
cout << "所有水仙花数:";
printNarcissisticNumbers();
return 0;
}
```
这个程序首先定义了一个`isNarcissistic`函数,用于判断一个整数是否是水仙花数。然后在`printNarcissisticNumbers`函数中,遍历100到999之间的所有数,并打印出符合条件的水仙花数。
阅读全文