7.用函数实现求水仙花数:一个三位数它的每一位数字的立方和等于该数本身 (eg:3^3+7^3+0^3=370)
代码如下:
#includebool Get_FlowerNum(int num){ int a=0,b=0,c=0;//370/100=3 370-3*100=70 70/10=7 70-7*10=0 a=num/100; num=num-a*100; //会导致原来的num值发生变化!!! b=num/10; c=num-b*10; int sum=(a*a*a)+(b*b*b)+(c*c*c); num=a*100+b*10+c*1; //先让num=原来传进来要判断的值再判断 if(num==sum){ return true; } return false; } int main(){ int num=0; printf("请输入一个三位数:n"); scanf("%d",&num); if(Get_FlowerNum(num)){ printf("%d是水仙花数!n",num); } else printf("%d不是水仙花数!n",num); return 0; }
代码实现如下:
ps:严格的讲,水仙花数只能为三位数!
附加题:输出100到1000的水仙花数
代码如下:(在上一个代码稍作修改即可)
#includebool Get_FlowerNum(int num){ int a=num/100; num=num-a*100; int b=num/10; int c=num-b*10; int sum=a*a*a+b*b*b+c*c*c; num=a*100+b*10+c; if(num==sum){ return true; } else return false; } int main(){ int i=0; for(i=100;i<1000;i++){ if(Get_FlowerNum(i)){ printf("%d是水仙花数!n",i); } } return 0; }
代码实现如下:
以上即是所有的水仙花数。



