14:水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如153=1^3+5^3=3^3。本题要求编写程序,计算所有N位水仙花数。
按递增顺序输出所有N位水仙花数,每个数字占一行。
#include<stdio.h>
#include<math.h>
int main(){
int a;
scanf("%d",&a);
int b,c,d;
c=1;
for(b=1;b<a;b++){
c*=10;//找出n位数其范围的最小值c
}
d=c*10;//找出最大值d-1
while(c<d){
int f=c;
int sum=0;
do{
int g=f%10;
f/10;
sum+=pow(g,a);//求出该数的每位数的a次方相加的和
}while(f>0);
if(sum==e)//比较是否满足水仙花数
{
printf("%d\n",c);
}c++;
}
return 0;
}
用到了pow函数pow(3,4)表示三的四次方其中在主函数上面加上#include<math.h>
疑问:输入3按回车键无反应没找到问题所在。