c语言学习:求水仙花数
在学习c语言中,怎么求水仙花数,下面一起来看看吧。
操作方法
【步骤01】
水仙花数是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数。
【步骤02】
方法一
#include <stdio.h>
#include <math.h>
int main()
{
int i,m,sum;
for(i=100;i<1000;i++)
{
sum=0;
m=i;
do
{
sum=sum+pow(m%10,3);//pow(a,b)是指a的b次幂是double型的
m=m/10;
}
while(m!=0);
if(sum==i)
printf("%d ",i);
}
printf("\n");
return 0;
}
运行结果:
153 370 371 407
Press any key to continue
【步骤03】
方法二
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("水仙花数:",n);
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n-i*100-j*10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d\n ",n);
}
return 0;
}
结果:
水仙花数:153
370
371
407
【步骤04】
方法三
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("水仙花数:",n);
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d\n ",n);
}
return 0;
}
输出结果:
水仙花数:153
370
371
407
标签:
相关文章
发表评论
评论列表