小小水仙花

来源:互联网 发布:淘宝宝贝模块代码 编辑:程序博客网 时间:2024/05/06 05:09

什么是水仙花数呢?  

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗 数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

实现:当n=3是求其1000以内的水仙花数:

<span style="font-size:14px;">#include<stdio.h>int main(){int i;int a,b,c;int count = 0;for(i = 100;i<1000;i++){a = i/100;b = i/10-a*10;c = i%10;if(a*a*a +b*b*b +c*c*c==i)printf("%d\n",i);} return 0;}</span>
当要输出任意n位的水仙花数

<span style="font-size:14px;">#include<stdio.h>int func(int a,int b);int main(){int num = 0;int count = 0;scanf("%d",&num);for(int i=func(10,num-1);i<func(10,num);i++){int sum = 0;int k = i;for(int j=1;j<=num;++j){count = k%10;sum+=func(count,num);k/=10;}if(sum ==i){printf("%d\n",i);}} return 0;}int func(int a,int b){int m= 0;int sum = 1;for(int i=1;i<=b;i++){sum*=a;}return sum;}</span>



0 0
原创粉丝点击