1000以内有多少水仙花数(寻找水仙花数)
题目要求:
如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如:407=43 03 73,因此407就是一个水仙花数。编写一个程序,找出全部的水仙花数。
题目分析:
水仙花数是三位数,只要应用穷举法穷举出100~999闭区间中的每一个数字(正整数),然后对每一个正整数进行判断,看它是不是水仙花数,如果是水仙花数,则将该数输出,如果不是水仙花数,则不输出该数。
int IsNarcissus(int a);
void Narcissus();
void main()
{
printf("The Narcissus numbers below are\n");
Narcissus();
getche();
}
void Narcissus()
{ /*寻找100-999之间的水仙花数*/
int i;
for(i=100;i<=999;i )
if(IsNarcissus(i))
printf("%d ",i);
}
int IsNarcissus(int a)
{ /*判断是否是水仙花数,是则返回1,不是返回0*/
int sum=0,tmp;
tmp=a;
while(tmp>0)
{
sum=sum (tmp)* (tmp)*(tmp);
tmp=tmp/10;
}
if(sum==a)
return 1; /*a 是水仙花数*/
else
return 0; /* a 不是水仙花数*/
}
运行结果:
运行结果
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com