加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2023-06-14 15:40:44)
标签:

林老师

pclogo

mswlogo

fmslogo

c

分类: WinXP~7~8~10运行Logo语言
求余计算也是“水仙花”数的好朋友
求余计算也是“水仙花”数的好朋友
      求余计算其实很简单。例如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编程画出来的动画:
求余计算也是“水仙花”数的好朋友


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有