输出所有的“水仙花数”所谓“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153 是水仙花数因为15313十53+33。C语言
时间: 2023-12-03 14:32:12 浏览: 87
解答如下:
#include <stdio.h>
int main() {
int i, a, b, c;
for (i = 100; i < 1000; i++) {
a = i / 100;
b = (i / 10) % 10;
c = i % 10;
if (a * a * a + b * b * b + c * c * c == i) {
printf("%d\n", i);
}
}
return 0;
}
输出:
153
370
371
407
以上是所有的水仙花数。
相关问题
输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
"水仙花数"是指一个三位数,它的每个位上的数字(百位、十位和个位)分别被三次方后相加,结果正好等于原数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
要输出所有这样的水仙花数,我们可以编写一个简单的 C++ 程序,遍历从 100 到 999 的每一个整数,计算它的各个位立方和并检查是否等于原数。下面是实现这个功能的一个示例代码:
```cpp
#include <iostream>
bool isArmstrongNumber(int number) {
int sum = 0;
int temp = number; // 将数字分解
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3); // 计算立方和
temp /= 10;
}
return number == sum; // 检查是否为水仙花数
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (isArmstrongNumber(i)) {
std::cout << i << " ";
}
}
std::cout << "\n";
return 0;
}
```
运行这段程序后,你会看到输出所有水仙花数的结果。如果想扩展到更多位数,只需要修改 `for` 循环的范围即可。
用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
阅读全文