公布答案了,不等了,不然心放不下,老惦记着这题

来源: 兄贵 2022-12-11 14:00:06 [] [博客] [旧帖] [给我悄悄话] 本文已被阅读: 0 次 (8277 bytes)
本文内容已被 [ 兄贵 ] 在 2022-12-11 14:15:49 编辑过。如有问题,请报告版主或论坛管理删除.
回答: 一直在线等 有人做 ACSL 预赛题吗?兄贵2022-12-11 13:20:10

第一题,

What is the output when this program is executed?
 
  A DC 0
  B DC 100
YELLOW LOAD B
  DIV = 10
  STORE C
  MULT = 10
  STORE F
  LOAD B
  SUB F
  STORE D
  LOAD B
  DIV = 100
  STORE E
  SUB D
  STORE G
  BE RED
BLUE LOAD B
  SUB = 999
  STORE H
  BL GREEN
  PRINT A
  END
RED LOAD A
  ADD = 1
  STORE A
  BU BLUE
GREEN LOAD B
  ADD = 1
  STORE B
  BU YELLOW

笨的方法,就是按上面这个程序走,最终肯定能得到答案,但是必须非常小心,不能出错,而且时间起码要花半个小时以上。

但是如果对程序有非常好的洞察力,应该能够立刻知道,这是 计算 三位数 的 palindromes (回文数字)的个数的程序,也就是计数有多少个如 101, 111, 121, ,,这样 aba 形式的数字,所以马上得到 90 (答案),费时不用 三分钟。这个程序非常好的表现了如何实现 flow control的,在汇编语言中,是没有 for loop 的,所有的 flow control, 包括 for loop 都是 通过 goto 来实现的,上面的 G 存储器,就是 E,D 两个头位数 和 末尾数相减,如果得 0, 就是palindromes ,计数器 A 就加 1.

读懂了程序就很容易,简单的排列计算 第一个数字9个选择,第2个数字10个选择,第3个数字没得选,9x10=90 就可以得到 90 这个答案

第2题就更简单了,就是 把八进制的 数 7325 转换成 十进制,一旦花一分钟看懂程序,再花一分钟就可以计算出答案是 3797.

谢谢大家

 

所有跟帖: 

看不懂,也点赞。 -寂寞的烟花- 给 寂寞的烟花 发送悄悄话 寂寞的烟花 的博客首页 (0 bytes) () 12/11/2022 postreply 14:05:36

谢谢 -兄贵- 给 兄贵 发送悄悄话 兄贵 的博客首页 (0 bytes) () 12/11/2022 postreply 14:07:11

请您先登陆,再发跟帖!

发现Adblock插件

如要继续浏览
请支持本站 请务必在本站关闭/移除任何Adblock

关闭Adblock后 请点击

请参考如何关闭Adblock/Adblock plus

安装Adblock plus用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”