
上QQ阅读APP看书,第一时间看更新
1.5 怎样才能得到阿姆斯壮数
难度系数:★★☆☆☆
被考查系数:★★★☆☆
题目描述:
在三位整数中,如153可以满足13+53+33=153,这样的数被称为Armstrong(阿姆斯壮)数,试写出一程序找出所有的三位数Armstrong数。
分析与解答:
方法一:遍历三位数求解
阿姆斯壮数的寻找,其实是将一个数字分解为个位数、十位数、百位数……,只要使用除法与余数运算即可求解出个十百位的数,例如,输入一个数字为abc,则:
百位:a=floor(input/100)
十位:b=floor((input%100)/10)
个位:c=input%10
实现代码如下:

程序的运行结果为

方法二: 穷举数求解
利用for循环控制100~999个数,每个数分解出个位、十位、百位。利用循环,分别用i代表百位,j代表十位,m代表个位,且百位的初始数值是1~9,而十位和个位初始数值是0~9,然后按百位、十位、个位的顺序嵌套循环,找出符合阿姆斯壮数公式的数,找出符合条件的阿姆斯壮数。
实现代码如下:

程序的运行结果为
