LOGO语言编程题 太白饮酒问题答案_林老师_新浪博客

LOGO语言编程题 太白饮酒问题★★答案

 

    这是一道典型的“正向递推”和“逆向递推”的问题。

    问题不复杂,但是十分具有代表性。

    把这一道问题搞清楚了,有助于弄清楚所有的这一类的题目。

 

    话说:

 

    李白无事街上走,提壶去买酒。

    遇店加一倍,见花喝一斗。

    五遇花和店,喝光壶中酒。

 

    请编程求出李白壶中原来有多少酒

 

    李白{zh1}一次饮酒前壶中正好有1斗酒,{zh1}一次遇见店之前壶中有半斗酒。这样逆推而上,可以求出结果。

 

    类似的递推问题的更详细的例题及详细的叙述请参考《LOGO语言竞赛教程》P302~P330。)

 

    程序中:I记录遇见花和店的次数,:A为壶中酒的斗数。

    程序如下:

 

TO LIBAI  ;太白饮酒问题
  MAKE "PRECISION 6 ;定义计算精度为6位
  MAKE "A 0         ;计算酒量的累加器清零(实际上是{zh1}酒喝光的状态)
  MAKE "I 0         ;计算次数的累加器清零
  WHILE [:I<5][MAKE "A :A+1 \
               MAKE "A :A/2 \
               MAKE "I :I+1] ;倒推计算
  TYPE[李白壶中原来酒的升数:]PR :A
END

    计算结果: 

LIBAI

李白壶中原来酒的升数:0.96875

 

    计算表明,李白壶中原有0.6875升酒。

 

    (程序中“\”换行转接号的使用请参考

        

 

    但是进一步研究,还能够编写程序模拟各个时段李白酒壶中酒的数量:

 

 

 

TO LIBAI2

  MAKE "PRECISION 6 ;定义计算精度为6

  MAKE "A 0.96875   ;壶中原有的酒量

  PR :A

  FOR "I 1 5[TYPE :I TYPE CHAR 32 \

             MAKE "A :A*2 TYPE :A TYPE CHAR 32 \

             MAKE "A :A-1 PR :A]

END

 

    计算结果: 

LIBAI2

  0.96875

1 1.9375 0.9375

2 1.875  0.875

3 1.75   0.75

4 1.5    0.5

5 1      0

 

    计算证明,到了第5轮,李白真的是喝光了全部的酒。

  

 

为方便大家查询资料,特此建立以下链接:

  

    

  

  

  

  

  

  

 

 

 

林老师{zx1}发表博客的链接:

       

 

林正山老师邮箱: 

 

声明:
    林正山老师发表的文章,媒体、网站或出版物未经本人许可不得转载。个人博客可以转载,转载时请注明作者姓名、文章原始出处,或以链接形式标明来源。

 

   LOGO语言竞赛教程》国际标准书号书号ISBN978-7-5335-3424-034.1万字、414页,定价22.00元,《LOGO语言竞赛习题集》国际标准书号ISBN978-7-5335-3425-7,39.6万字、481页,定价26.00元。两本书均大32开本,封面采用250克铜版纸,四色全彩印刷,内文采用60克胶版纸,黑白印刷,福建省科技出版社出版。

    凡查询购买以上两本书的,请自行与福州市安泰图书城一楼源泉书店0591-87547909联系购买。为保证书款安全,建议外地读者使用“支付宝”付款。

已投稿到:
郑重声明:资讯 【LOGO语言编程题 太白饮酒问题答案_林老师_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——