三位水仙花数

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 
 5 int main()
 6 {
 7     /*三位水仙花数
 8        概念:若三位数ABC满足ABC=A^3+B^3+C^3,则称为三位水仙花数。例如153=1^3+5^3+3^3,所以 153是水仙花数
 9 
10        实现步骤:
11             1. 输入两个数,表示区间[a,b],由于求解的是三位的水仙花数,所以a>=100,b<=999,且b>a
12             2. 实现算法,设数num,分解百位,十位,个位,然后各三次方相加,看是否和等于数num
13             3. 输出水仙花数
14 
15        这里需要引入一个方法pow(int x,int y) 要包含math.h头文件
16        实例:
17         double x=2.0,y=3.0;
18         printf("%lf的%lf次方是:%lf\n",x,y,pow(x,y));
19         打印出:2.000000的3.000000次方是:8.000000
20     */
21     
22     //1 声明百位 十位 个位
23     int bai,shi,ge;
24     int num;
25 
26     //2 实现算法
27     for(num=100;num<=999;num++)
28     {
29         //2.1 百位、十位、个位分解
30         bai = num/100;
31         shi = num/10%10;
32         ge  = num%10;
33         //2.2 判断算法
34         if(num == pow(bai,3)+pow(shi,3)+pow(ge,3))
35         {
36             printf("%d\n",num);
37         }
38     }
39 
40     return 0;
41 }

打印结果:

补充水仙花数的概念:

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

posted @ 2016-05-06 23:14  Wangyk  阅读(1362)  评论(0编辑  收藏  举报