用c++编写输出所有的水仙花数,所谓水仙花数指的是一个3位数,其各位数字立方和等于该数本身。
时间: 2024-12-24 15:37:27 浏览: 5
在 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++l输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。
好的,下面是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
// 判断一个数是否是水仙花数
bool isNarcissistic(int num) {
int sum = 0, temp = num;
while (temp) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
for (int i = 100; i <= 999; i++) {
if (isNarcissistic(i)) {
cout << i << " ";
}
}
cout << endl;
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之间的所有数,并打印出符合条件的水仙花数。
阅读全文