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

递归查找“水仙花”数也很利索

(2023-06-17 09:25:21)
标签:

林老师

pclogo

mswlogo

fmslogo

c

分类: WinXP~7~8~10运行Logo语言
递归查找“水仙花”数也很利索
递归查找“水仙花”数也很利索
      前面几篇博客我们主要精力都集中在“怎么剪取出百、十、个位数”上。其实如何产生100~999折一连串的三位数也是值得研究的。其中使用递归,:i的初始值为100,每次递归循环后变量:i都自动增长1,到了大于999时停止递归,这样便将所有的三位数都“遍历”了一遍。其它“怎么剪取出百、十、个位数”的方法你爱选用哪一种就选用哪一种。所以编程的灵活性是很高的。下面是使用递归的编程:
to sxh_e :i
  if :i>999[stop]   ;当:i超过3位数时停止运算
  make "b item 1 :i ;用字表处理命令item剪取出第1位百位数
  make "s item 2 :i ;剪取第2位十位数
  make "g item 3 :i ;剪取第3位个位数
  if :b*:b*:b+:s*:s*:s+:g*:g*:g=:i[  ;输出符合条件的3位自幂数
    pr :i]
  sxh_e :i+1  ;:i增长1后尾递归继续寻找符合条件的自幂数
end

运行程序时必须记住,sxh_e命令是带参数:i的。:i的初始值必须是100.

sxh_e 100
153
370
371
407

LOGO编程画出的动画图形:
递归查找“水仙花”数也很利索

递归查找“水仙花”数也很利索

递归查找“水仙花”数也很利索

递归查找“水仙花”数也很利索









                              

0

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

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

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

新浪公司 版权所有