C语言:水仙花数。

浙大版《C语言程序设计实验与习题指导(第3版)》题目集

实验4-2-5 水仙花数 20
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。
例如:153=1^3+5^3+3^3。 本题要求编写程序,计算所有N位水仙花数。

/*
a是余数,m1为取数上限,
sum为每个位上的数字的N次幂之和,
i用以控制循环取余的次数 ,
因为m用于遍历,故使M=m,用M进行变化。
*/

int main( ) {
 int m,m1,M,i; 
 int a,sum=0;
 double n;
 scanf("%lf",&n);
 m=pow(10,n-1);
 m1=pow(10,n);
 
 for(;m {          
     M=m;
     sum=0;
  for(i=0;i  {
  a=M%10;                       //取余,分解
  sum=pow(a,n)+sum;
  M=M/10;
  }
  
  if(sum==m)
  {
   printf("%d\n",m);
  }
 }
 return 0;
}

C语言:水仙花数。_第1张图片

你可能感兴趣的:(C语言:水仙花数。)