答案

来源: 兄贵 2022-12-11 14:15:27 [] [博客] [旧帖] [给我悄悄话] 本文已被阅读: 0 次 (14262 bytes)
回答: 介绍2个竞赛兄贵2022-12-10 23:53:25

第一题,

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.

谢谢大家

请您先登陆,再发跟帖!

发现Adblock插件

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

关闭Adblock后 请点击

请参考如何关闭Adblock/Adblock plus

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

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