加载中…
个人资料
林老师的LOGO_PYTHON_C语言之家
林老师的LOGO_P
YTHON_C语言之家
  • 博客等级:
  • 博客积分:0
  • 博客访问:45,449
  • 关注人气:563
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用数字分离法实现查找“水仙花”数

(2023-06-13 15:40:27)
标签:

林老师

pclogo

mswlogo

fmslogo

c

分类: WinXP~7~8~10运行Logo语言
用数字分离法实现查找“水仙花”数
 用数字分离法实现查找“水仙花”数
      有一个数字:153,要验证它是不是水仙花数,还可以用数学计算的方法将一百五十三153这个三位数的百位、十位、个位数字分别分离出来,再计算它们的立方和……百位是这样计算的:153÷100=1.53,LOGO语言中有一个INT“向下取整数”函数,INT(1.53)→1,这样百位数就分离出来了。153-1×100=53,现在得到的是后面的两位数。INT(53/10)=INT(5.3)→5,十位数也分离出来了。153-1×100-5×10=153-100-50→3,最后这个数字就是个位数。这是最经典的数字分离拆分运算,在LOGO语言、C++语言、PYTHON语言中都是通用的,都是一样的道理。
      我们所需要的三位数,用FOR[I 100 999][循环体],就能得到从100~999所有的三位数。按照这样思路编写出来的LOGO程序是这样子的:
to sxh_b  ;for MSWLogo-FMSLogo
  for[i 100 999][       ;产生100-999所有3位数
    make "b int(:i/100) ;从中分解出百位数
    make "hm :i-:b*100  ;减去百位剩下后面是十位及个位数
    make "s int(:hm/10) ;分解出十位数
           make "g :i-:b*100-:s*10 ;减去百位及十位的值剩下的就是个位数
    if :b*:b*:b+:s*:s*:s+:g*:g*:g=:i[  ;这是发现3位自幂数的条件
      pr :i]]
end

sxh_b
153
370
371
407

      这样的数字拆分方法,原理直观简单,也是最常用的编程方式。

还有精彩的编程方法待续

用数字分离法实现查找“水仙花”数

用数字分离法实现查找“水仙花”数

用数字分离法实现查找“水仙花”数

LOGO编程画出来的动画图形:

用数字分离法实现查找“水仙花”数

0

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

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

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

新浪公司 版权所有