编写程序,打印所有3位数的Armstrong数。所谓Armstrong数是指其值等于它本身每位数字立方和的数。如153就是一个Armstrong数。
法1
#include<stdio.h>
int main(void){
int i,a,b,c,count=0;
for(i=100;i<=999;i++){
a=i%10;
b=(i/10)%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c){
printf("%5d",i);count++;
}
if(count==5){
printf("\n");count=0;
}
}
return 0;
}
法2
#include <stdio.h>
int main(void) {
int a,b,c,count=0;
for(a=1;a<=9;a++){
for(b=0;b<=9;b++){
for(c=0;c<=9;c++){
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c){
printf("%5d",a*100+b*10+c);count++;
}
if(count==5){
printf("\n");count=0;
}
}
}
}
return 0;
}
法2易错:为保证遍历所有三位数,b、c从0开始而不是1,a必须从1开始