如何用C语言求出水仙花数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
题目描述
求出所有的水仙花数
分析
百度百科:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:13 + 53+ 33 = 153。
判断一个数是否为水仙花数,可以先将该数的所有位都取出并存入数组,最后代入水仙花数的公式,如果满足水仙花条件,该数即为水仙花数。
代码实现
#include<stdio.h>#defineINTEGER_MAXIMUM999//数字范围,最大值#defineINTEGER_MINIMUM100//最小值intif_narcissistic_number(intnum);intmain(){inti=0;for(i=INTEGER_MINIMUM;i<=INTEGER_MAXIMUM;i++){if(if_narcissistic_number(i)){printf("%d",i);}}printf("\n已求出所有水仙花数\n");return0;}/***@brief判断是否为水仙花数*@return1:是水仙花数;0:不是水仙花数*/intif_narcissistic_number(intnum){/*如果不是3位数*/if(num<100||num>999)return0;inthundreds=num/100;//百位inttens=num/10%10;//十位intones=num%10;//个位if(num==hundreds*hundreds*hundreds+\tens*tens*tens+\ones*ones*ones)return1;return0;}运行结果
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。