本文主要是介绍小小水仙花,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是水仙花数呢?
水仙花数(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>
这篇关于小小水仙花的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!