我在处理静态范围和动态范围时感到困惑,对于这个伪代码,我必须找到两者。对于两者,我认为它应该打印出来: 9 4 2 3 但是,我并不完全确定。任何帮助将不胜感激,谢谢。
g: integer
procedure B(a: integer)
x: integer
x := a X a
R(1)
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)
procedure main() -- entry point
B(3)
write_integer(g)