首页 > 代码库 > 水仙花数

水仙花数

    题:打印出所有的水仙花数,所谓水仙花数就是指一个3位数,其每一位的立方和等于它本身,比如(153=1^3+5^3+3^3)

  解:  

/*
2014年9月10号家庭作业---张荣亮
*/
#include <stdio.h>
void main()
{
  int n,a,b,c;                                          //定义三个变量,n为三位数,a为百位数,b为十位数,c为个位数
    for(n=99;n<1000;n++)                  //循环从100开始只要n小于 1000就循环
    {
      a=n/100;                                //123/100==1,获取百位数
      b=(n-a*100)/10;                     //(123-a*100)/10==(123-100)/10==2,获取十位
      c=n%10;                                //123%10== 3,获取个位
      if(n==a*a*a+b*b*b+c*c*c)     //如果满足水仙花数的要求n==a^3+b^3+c^3,则打印这个水仙花数
      {
        printf("水仙花有:%d",n);
      }
    }
}

 

由此可得出水仙花数有:153,370,371,407.

水仙花数