用c++完成:输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。
时间: 2023-12-03 07:13:57 浏览: 46
Sure, 我可以很轻松地给您展示如何用C语言输出所有水仙花数:
#include <stdio.h>
#include <math.h>
// 定义函数,用于判断一个数是否是水仙花数
int isArmstrong(int num) {
int temp = num;
int sum = 0;
int n = 0;
while (temp > 0) {
temp /= 10;
n++;
}
temp = num;
while (temp > 0) {
int remainder = temp % 10;
sum += pow(remainder, n);
temp /= 10;
}
return sum == num;
}
int main() {
for (int i = 100; i < 1000; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
希望这可以帮到您!
相关问题
写一个C++程序:输出所有的“水仙花数”,所谓“水仙花数”是指一个3 位数,其各位数字立方和等于该数本身。例如,153 是一水仙花数
。这是一个简单的 C 语言程序,用于打印所有的“水仙花数”:
```
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n < 1000; n++) {
i = n / 100; // 计算百位
j = (n / 10) % 10; // 计算十位
k = n % 10; // 计算个位
if (i * i * i + j * j * j + k * k * k == n) {
printf("%d\n", n); // 打印该数
}
}
return 0;
}
```
该程序使用 for 循环遍历所有的三位数,分别计算其百位、十位和个位数字。然后,它检查该数是否是“水仙花数”,即它的立方和是否等于该数本身。如果是,则打印该数。
用do…while编写输出所有的水仙花数。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
以下是使用do...while循环输出所有的水仙花数的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int num = 100;
int digit1, digit2, digit3;
do {
digit1 = num / 100; // 获取百位数字
digit2 = (num / 10) % 10; // 获取十位数字
digit3 = num % 10; // 获取个位数字
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
cout << num << endl;
}
num++;
} while (num < 1000);
return 0;
}
```
该程序首先初始化`num`为100,然后使用do...while循环,每次循环时取出`num`的三个数字,计算它们的立方和是否等于`num`本身,如果是则输出`num`。最后将`num`加1并判断是否小于1000,如果小于则继续下一轮循环,否则退出循环。