int main()
{
int i,t,k,a[3]
printf("There are follwing armstrong number smaller than 1000:\n")
for(i=2i<1000i++) /*穷举要判定的数i的取值范围2~1000*/
{
for(t=0,k=1000k>=10t++) /*截取整数i的各位(从高向低位)*/
{
a[t]=(i%k)/(k/10)/*分别赋于a[0]~a[2}*/
k/=10
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)
/*判断i是否为阿姆斯特朗数*/
printf("%5d",i)/*若满足条件,则输出*/
}
printf("\n")
}
*运行结果
There are following armstrong number smaller than 1000:
153 370 371 407
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。(当n=3时,又称水仙花数,特指一种三位数,其各个数之立方和等于该数。)#include<stdio.h>
int main()
{
int i,t,k,a[4]
printf("There are follwing armstrong number smaller between 2345 to 4567:\n")
for(i=2345i<4567i++) /*穷举要判定的数i的取值范围2345~4567*/
{
for(t=0,k=10000k>=10t++) /*截取整数i的各位(从高向低位)*/
{
a[t]=(i%k)/(k/10)/*分别赋于a[0]~a[3]*/
k=k/10
}
if(a[0]*a[0]*a[0]*a[0]+a[1]*a[1]*a[1]*a[1]+a[2]*a[2]*a[2]*a[2]+a[3]*a[3]*a[3]*a[3]==i)/*判断i是否为阿姆斯特朗数*/
printf("%5d",i)/*若满足条件,则输出*/
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)