需求:
代码如下:
#include<stdio.h>
int main(){
//水仙花数
printf("想看几个数字的水仙花数?\n");
int number; //有几个数字
scanf("%d",&number);
int i,j; //循环的变量
int wide = 1; //为了确定范围的变量
for(i = 1;i < number;i++){
wide = wide*10;
}
for(j = wide;j < wide*10;j++){
int num = j; //为了让循环不受影响继续下去
int result = 0; //最终结果
while(num>0){
//分割范围中的数
int p = num % 10;
num = num / 10;
int k = 0;
int v = 1;
//有几个数字就乘几次
while(k < number){
v = v*p;
k++;
}
result = result + v;
}
//结果与数字相同即为所求数字
if(result == j){
printf("%d\n",j);
}
}
return 0;
}