求余计算也是“水仙花”数的好朋友

求余计算其实很简单。例如9÷4=2……1九除以四的商是2、余数是1。用LOGO命令表达就是remainder 9 4→1。这个remainder求余计算是不输出商的,只输出余数1。这样就有可能用来分解数字的某个数位了。例如:remainder 53
10→3。这个计算就将53这个数的个位数3给分解出来了。这个remainder有时还要和int向下取整联合起来使用。例如要找出153中间的5,先执行int(153/10)→15,再执行remainder 15
10→5。中间的这个5就被“抠”出来了。这些道理仔细想想其实很理性、不难理解。
另外,计算乘方,比如计算5的3次乘方,就是5×5×5,还能用power 5
3来表达。这个power命令的好处就是就是在乘方数较多的时候,编程输入起来比较简单。例如计算5的9次乘方,power 5
9就行了。要是连着写9个5相乘,真是够麻烦的。有了remainder这个好朋友,水仙花数的程序可以这样编写:
to
sxh_c
for[i 100 999][
;用循环产生出所有3位数
make "g
remainder :i 10
;用求余算出个位数
make "s
remainder (int(:i/10)) 10 ;计算出十位数
make "b int
:i/100
;计算出百位数
if(power :b
3)+(power :s 3)+(power :g 3)=:i[pr
:i]]
;符合3位自幂数条件
end
一个水仙花数用这么多种的编程方式来求解,会让你对LOGO编程的规律有更深的理解,触类旁通之后编写类似的“查找某种数字”的程序就会觉得“无非就是这几招”。
LOGO编程画出来的动画:
加载中,请稍候......