三位水仙花数
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 次幂之和等于它本身。