Loading... <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-4f7a7e8df793f536a556cd36cc1a870c94" aria-expanded="true"><div class="accordion-toggle"><span style="">水花仙数介绍</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-4f7a7e8df793f536a556cd36cc1a870c94" class="collapse collapse-content"><p></p> 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1的三次方+5的三次方+3三次方。 本题要求编写程序,计算所有N位水仙花数。 ### 输入格式: 输入在一行中给出一个正整数N(3≤N≤7)。 ### 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 ### 输入样例: ```in 3 ``` ### 输出样例: ```out 153 370 371 407 ``` <p></p></div></div></div> ```cpp #include<stdio.h> #include<math.h> int main() { int a , b , c , d , e ,f ,sum; c=0; scanf("%d",&a); b=pow(10,a); //pow是数学函数中的幂函数,左边代表:10的a次方 for( e=pow(10,a-1);e<b;e++) { sum=0; f=e; while(f) { sum=sum+pow(f%10,a) ; //每一位数的a次方,进行累计相加(水花仙数的意义) f=f/10; } if(e==sum) //判断每一位数的a次方是否等于e { printf("%d\n",e); } } } ``` 最后修改:2021 年 05 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有用,请随意打赏。