阿姆斯特朗数

自然语言解决问题:“阿姆斯特朗数”与上例中的“水仙花数”的不同在于,前者并没有规定几位数,从两者的定义来看“水仙花数”可以看做是“阿姆斯特朗数”的一个子集。对于这类问题的算法与“水仙花数”类似,即需要把每一位分离出来,然后比较其立方和与原数是否相等

流程图:

 

具体代码:

#include <stdio.h>
int main(){

int i,t,k,a[3]={0};
printf("There are following Armstrong number smaller than 1000;\n");
for(i=2;i<1000;i++)
{

t=0;
k=i;
while(k)
{

a[t]=k%10;
k=k/10;
t++;
}
if(i==a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2])

printf("%d ",i);
}
printf("\n");
}

posted @ 2023-05-12 19:00  Mini-Q  阅读(87)  评论(0)    收藏  举报