题目
在三位的整数中,例如,153可以满足1^3 + 5^3 + 3^3 = 153,这样的数称为Armstrong数,试写出一程序找出所有的Armstrong数。
解题思路一
遍历100到999的数设置变量啊,a,b,c分别记录百位,十位,个位的数字。然后进行看是否满足Armstrong的式子,是就输出
代码实现
js:
var a,b,c,num,x
for(var num = 100;num <= 999;num++){//遍历100——999
a=Math.floor(num/100);//通过整除100,取出百位的数字
b=Math.floor((num%100)/10)//通过与100取余后整除10,取出十位的数
c=Math.floor(num%10);//通过与10取余,取出个位的数
x=a*a*a+b*b*b+c*c*c;//公式
if(x==num){//判断是否符合阿姆斯壮数
console.log(num);输出
}
}
结果
153
370
371
407
解题思路二 (枚举法)
枚举法说白了就是一个一个举出可能的项,然后判断是否符合,符合就输出,
代码实现
var num;
for(var a = 1;a <= 9;a++){//百位从1开始到9
for(var b = 0;b <= 9;b++){//十位从0开始到9
for(var c = 0;c <= 9;c++){/个位从0开始到9
num=a*100+b*10+c;//公式
if(a*a*a+b*b*b+c*c*c == num){//判断是否符合阿姆斯壮数
console.log(num);
}
}
}
}
结果
153
370
371
407