Tout d'abord c'est pour l'école et je ne cherche pas de document à distribuer. Juste des conseils. Je dois écrire une fonction fibonacci en utilisant des outils très basiques.Fibonacci imbriqué?
J'ai ces outils (d'une langue que nous avons écrit en Java):
- if-else
- boucle for
- arithmétique
- affectation
- d'imbrication infinie
- tout nombre d'énoncés.
Le problème est que n'importe quel nid ou instruction ne peut avoir qu'une seule instruction résultante ou imbrication.
Par exemple, cela est correct:
repeat b to 7 by 2
{
repeat a to 5 by 1
{
a = a + 1
}
}
mais ce n'est pas correct:
repeat x to 5 by 1
{
x = x + 1
y = x
}
Voici la section pertinente de la grammaire:
<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>
je peux » t comprendre comment diable je vais y arriver. La récursivité n'est pas autorisée. Des pointeurs?
Encore une fois, ne cherchez pas la solution, juste des conseils.
Merci beaucoup
affichant la grammaire de la langue rendrait cela plus facile de répondre . –
bon point. Ajoutée. –
est-ce qu'une instruction if-else compte comme une ou deux instructions? – David