C语言枚举法输出水仙花数
时间: 2023-12-28 09:25:22 浏览: 29
以下是使用C语言枚举法输出水仙花数的示例代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("水仙花数:\n");
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp != 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
```
这段代码使用了一个循环来遍历所有的三位数。对于每个数,它将每一位的立方和累加到变量`sum`中。如果`sum`等于该数本身,则说明该数是水仙花数,将其打印出来。
相关问题
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;
}
```
该程序通过三重循环枚举所有三位数,判断是否为水仙花数,如果是则输出。其中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。
c语言水仙花数枚举法
以下是使用枚举法求解水仙花数的C语言程序:
```c
#include <stdio.h>
int main() {
int i, j, k, n;
for (i = 1; i < 10; i++) {
for (j = 0; j < 10; j++) {
for (k = 0; k < 10; k++) {
n = 100 * i + 10 * j + k;
if (n == (i * i * i + j * j * j + k * k * k)) {
printf("%d\n", n);
}
}
}
}
return 0;
}
```
这段程序使用三层嵌套的循环来枚举所有的三位数。在每次循环中,我们计算当前的三位数n,并判断它是否是水仙花数。如果是,就将其打印出来。
水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
应用扩展:如果你想求解0~10000之间的水仙花数,你可以将循环的范围修改为`for (i = 0; i < 10; i++)`,并在外层再加一层循环来枚举百位数。这样就可以找到所有的水仙花数了。