自然语言解决问题:“阿姆斯特朗数”与上例中的“水仙花数”的不同在于,前者并没有规定几位数,从两者的定义来看“水仙花数”可以看做是“阿姆斯特朗数”的一个子集。对于这类问题的算法与“水仙花数”类似,即需要把每一位分离出来,然后比较其立方和与原数是否相等
流程图:
具体代码:
#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");
}