#include <stdio.h>
int main()
{
int N,sum; //声明输入-N,输出-sum
int Min, Max; //声明最小值-Min,最大值Max
int a, b, c, d, e; //声明--运算整型--只参与运算,不输出数值-可以二次使用
printf("输入需要求的水仙花数位数:");
scanf("%d", &N); //输入需要求取的水仙花数位数--N
a = 1; //给--a--赋值
for (b = 1;b < N;b++) //求出输入位数数值的范围
{
a *= 10;
}
Min = a; //N位数--最小值--Min;
Max = a * 10 - 1; //N位数--最大值--Max;
printf("%d位数的水仙花数有:", N);
for (;Min <= Max;Min++) //从--Mix--到--Max--递增;
{
c = 1; //初始化-c-值
sum = 0; //初始化-sum-值
for (a = 0;a < N;a++) //初始化-a-值---二次运用
{
d = (Min / c) % 10; //提取位数上的数值
e = 1; //初始化-e-值
for (b = 0;b < N;b++) //初始化-b-值---二次运用 //计算输入值的N次方
{
e *= d;
}
c *= 10;
sum += e; //求和
}
if (sum == Min) //判断数值是否是水仙花数
{
printf(" %d", sum);
}
}
printf("\n");
return 0;
}
C语言--for循环--求N位数水仙花数(3<=N<10)
于 2024-01-17 00:50:30 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)