嵌套的斐波那契?

Nested fibonacci?

首先这是给学校的,我不是在找讲义。只是指导。 我需要使用非常基本的工具编写斐波那契函数。

我有这些工具(来自我们用 Java 编写的语言):

问题是任何嵌套或语句只能有一个结果语句或嵌套。

例如这样也可以:

repeat b to 7 by 2
{
  repeat a to 5 by 1
  {
    a = a + 1
  }
}

但这不行:

repeat x to 5 by 1
{
  x = x + 1
  y = x
}

这里是语法的相关部分:

<code> ::= <statement> <code>
<code> ::= <statement>
<statement> ::= load <string>
<statement> ::= print <expr>
<statement> ::= input <var>
<statement> ::= if <cond> <statement>
<statement> ::= if <cond> <statement> else <statement>
<statement> ::= repeat <var> to <val> by <val>
<statement> ::= <var> = <expr>
<expr> ::= <val> + <val>
<expr> ::= <val> - <val>
<expr> ::= <val> * <val>
<expr> ::= <val> / <val>
<expr> ::= <val>
<cond> ::= <val> == <val>
<cond> ::= <val> > <val>
<cond> ::= <val> < <val>
<val> ::= <num>
<val> ::= <var>

我不知道我到底要怎么做才能完成这件事。不允许递归。 有什么指点吗?

再说一次,不是寻找解决方案,只是寻求指导。

非常感谢

像这样?使用 3 个变量代表序列的最后 3 个数字?。你真正想要的是有一个简单的:

a = 0
b = 1
repeat x to 5 by 1
{
   c = a + b
   a = b
   b = c
}

但这是不允许的。但是,由于 if-else 算作 1 条语句,您可以简单地 (ab) 通过在重复的每个部分执行 1 条语句来使用它来执行 3 条语句:

a = 0
b = 1
repeat x to 5 by 1
{
   repeat y to 3 by 1
   {
       if y < 2
       {
            if y < 1
            {
                c = a + b
            }
            else
            {
                a = b
            }  
        }
        else
        {
            b = c
        } 
   }
}