Static 打印使用静态作用域和嵌套子例程的psedoocode的输出

Static 打印使用静态作用域和嵌套子例程的psedoocode的输出,static,pseudocode,scoping,Static,Pseudocode,Scoping,我在这里发现了同样的问题,但是那个人的代码格式不正确,影响了给出的答案。 代码如下: procedure main g : integer procedure B(a : integer) x : integer procedure A(n : integer) g := n procedure R(m : integer) write integer(x) x /:= 2 – – intege

我在这里发现了同样的问题,但是那个人的代码格式不正确,影响了给出的答案。 代码如下:

procedure main
   g : integer
   procedure B(a : integer)
      x : integer
      procedure A(n : integer)
         g := n
      procedure R(m : integer)
         write integer(x)
         x /:= 2 – – integer division
         if x > 1
            R(m + 1)
         else
            A(m)
      – – body of B
      x := a × a
      R(1)
   – – body of main
   B(3)
   write integer(g)
我想应该是9 4 2 3

我用C编写了一个快速程序(因为它使用静态作用域),完成了伪代码所做的一切,并且它同意我的解决方案。然而,我在网上找到了一些资源,这些资源指向以下答案:9 4 1 4

谁能解释一下为什么这是正确的答案,或者我的答案是否正确