C语言 水仙花数两种算法

两种方法:普通解法和巧妙解法
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.普通解法代码实现:

#include "stdio.h"
main()
{
  int i,j,k,n;
  printf("水仙花数是:");
  for(n=100;n<1000;n++)
  {	
  	i=n/100;/*分解出百位*/
    j=n/10%10;/*分解出十位*/
    k=n%10;/*分解出个位*/
    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
      printf("%-5d",n);
  }
}

C语言 水仙花数两种算法_第1张图片
巧妙解法:

#include 
#include "math.h"
main()
{ int i,iG,iS,iB;
  for(i=100;i<1000;i++)
   { iG=i%10;  /*计算个位数*/
     iS=i/10%10;  /*计算十位数*/
     iB=i/100;   /*计算百位数*/
     if(i==pow(iG,3)+pow(iS,3)+pow(iB,3))
        printf("%d  ",i);
    }
 }

C语言 水仙花数两种算法_第2张图片

你可能感兴趣的:(#,C语言编程,#,C程序流程设计)