分解一个多位数的每一位,从低位开始分解:
while(k != 0)
{
printf("%d",i%10);
i = i / 10;
}
从高位开始分解:
for(t = 0,k = 1000; k >= 10; t++)
{
a[t] = (i % k) / (k /10);
k /= 10;
}
#include <stdio.h>
#include <math.h>
int main()
{
int i;
int t;
int k;
int a[3];
printf("Ther are following Armstrong smaller than 1000:\n");
for(i = 2; i < 1000; i++)
{
for(t = 0,k = 1000; k >= 10; t++)
{
a[t] = (i % k) / (k /10);
k /= 10;
}
if(pow(a[0],3) + pow(a[1],3) + pow(a[2],3) == i)
{
printf(" %d ",i);
}
}
return 0;
}