【问题标题】:How to find the sum of odd numbers in LMC如何在LMC中找到奇数的总和
【发布时间】:2020-10-28 05:08:49
【问题描述】:

我正在学习 LMC,但我无法在 LMC 中找到 100 之前的奇数和 比如1+3+5+7……等等

我确实编写了将两个数字相加的代码

  INP //here I wil input 1
  STA 99
  INP // here I will input 2
  ADD 99
  OUT
  HLT

我不知道如何遍历它,所以我可以得到奇数的总和。如果有人可以请帮助我?

【问题讨论】:

  • 如果要1到100的奇数之和,为什么还要让用户输入呢?当您输入不同的内容时,程序的行为应该如何不同?

标签: little-man-computer


【解决方案1】:

如果你需要输出 1 到 100 之间的奇数,那么没有理由要求用户输入:你已经拥有了解决问题的所有要素,所以什么都不需要问。

使用 LMC,您通常需要定义一些常量数据,例如 ... 数字 1。对于本练习,数字 2 也可以很方便地准备好。所以为这两个号码预留两个“邮箱”(使用DAT)。

下面是程序如何遍历 1 到 99 之间的奇数:

LOOP      LDA CURRENT  // start with one
          OUT          // output less than 100
          ADD TWO
          STA CURRENT
          SUB HUNDRED  // compare with 100
          BRP EXIT     // halt when above
          BRA LOOP     // and repeat
     EXIT HLT
  CURRENT DAT 1
      TWO DAT 2
  HUNDRED DAT 100

<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.7/lmc.js"></script>

但是,计算这些数字的总和将超出 LMC 的能力。 1+3+5+..+99的sum是2500,而LMC只能处理999以内的数字,所以不行。

【讨论】:

    猜你喜欢
    • 2022-09-26
    • 2022-11-18
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2017-07-12
    • 1970-01-01
    相关资源
    最近更新 更多