c++打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是“水仙花数”,因为153=13+53+33。
时间: 2023-10-25 17:07:58 浏览: 79
要打印所有的水仙花数,你可以使用以下C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
for (int num = 100; num <= 999; num++) {
int originalNum = num;
int sum = 0;
while (originalNum != 0) {
int digit = originalNum % 10;
sum += digit * digit * digit;
originalNum /= 10;
}
if (sum == num) {
cout << num << " 是水仙花数" << endl;
}
}
return 0;
}
```
这段代码会从100到999遍历所有的三位数。对于每个数字,它会将各个位上的数字立方和计算出来,并与原始数字进行比较。如果它们相等,则打印出该数字是水仙花数。运行代码后,会打印出所有的水仙花数。
相关问题
用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++编程计算求“水仙花数”。所谓“水仙花数”,是指一个三位数,各位数字立方和等于该数本身
在C++中,计算"水仙花数"可以编写一个简单的循环程序,遍历所有三位数,并验证它们是否满足条件,即各位数字的三次方之和等于原数。以下是代码实现的一个示例:
```cpp
#include <iostream>
using namespace std;
bool is narcissistic(int n) {
int sum = 0;
int originalNum = n; // 将原始数存储以便恢复
// 分离每位数字并取立方
while (originalNum != 0) {
int digit = originalNum % 10;
sum += pow(digit, 3); // 加上立方后的数字
originalNum /= 10;
}
// 检查结果是否相等
return sum == n;
}
int main() {
int start = 100, end = 999; // 只考虑三位数
cout << "Searching for narcissistic numbers between " << start << " and " << end << ":" << endl;
for (int i = start; i <= end; ++i) {
if (is_narcissistic(i)) {
cout << i << " is a Narcissistic Number.\n";
}
}
return 0;
}
```
在这个程序中,`is_narcissistic` 函数接收一个整数 `n`,并通过将每个位上的数字取出并计算其立方值来判断是否为水仙花数。如果所有位上的立方和等于原始数,就返回true,表示它是水仙花数。
阅读全文