C语言用for循环反向输出水仙花数
时间: 2023-11-02 08:05:07 浏览: 43
水仙花数指一个三位数,其各位数字立方和等于该数本身。比如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
反向输出水仙花数可以通过倒序遍历三位数来实现,具体实现如下:
```c
#include <stdio.h>
int main() {
int i, j, k;
for (i = 9; i >= 1; i--) {
for (j = 9; j >= 0; j--) {
for (k = 9; k >= 0; k--) {
int n = i * 100 + j * 10 + k;
if (n == i*i*i + j*j*j + k*k*k) {
printf("%d\n", n);
}
}
}
}
return 0;
}
```
上述代码中,循环变量i、j、k分别表示三位数的百位、十位、个位上的数字,从9开始倒序遍历三位数。对于每个遍历到的三位数n,判断其是否为水仙花数,如果是就输出。
相关问题
c语言 用for循环完成计算水仙花数
当然可以!以下是 C 语言代码:
#include <stdio.h>
int main() {
int number, originalNumber, remainder, result = 0;
printf("请输入一个三位数: ");
scanf("%d", &number);
originalNumber = number;
// 用 for 循环计算水仙花数并打印结果
for (;originalNumber != 0; originalNumber /= 10) {
remainder = originalNumber % 10;
result += remainder * remainder * remainder;
}
if (result == number)
printf("%d 是一个水仙花数", number);
else
printf("%d 不是一个水仙花数", number);
return 0;
}
c语言多重循环输出水仙花数
以下是C语言多重循环输出水仙花数的例子:
```c
#include <stdio.h>
int main() {
int sum, x, y, z;
for(x=1;x<10;x++) {
for(y=0;y<10;y++) {
for(z=0;z<10;z++) {
sum=100*x+10*y+z;
if(sum==x*x*x+y*y*y+z*z*z) {
printf("%4d",sum);
}
}
}
}
return 0;
}
```
该程序通过三重循环枚举所有三位数,判断是否为水仙花数,如果是则输出。其中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。