Syntaxe lua

nombre = 0 + 2 * 4
chaine = "Bonjour" .. " à tout le monde !"
booleen = true and false or not false

if x == 1 then
	print("OK")
else
	print("KO")
end

function f(x)
	y = x+1
	return y
end

Contraintes : nous n’utiliserons pas de boucle (ni for ni while).

Exercices

  1. Écrire la fonction puissance.

  2. En utilisant puissance, écrire la fonction exponentielle binaire (n \mapsto 2^n)

  3. Écrire la fonction factorielle.

  4. Écrire la fonction sommielle.

  5. Écrire une fonction qui calcule le n-ième terme de la suite de Fibonacci.

    1. La tester sur l’entrée 30 (on devrait trouver 832040)
    2. La tester sur les valeurs suivantes. Mesurer le temps utilisé.
    3. Réfléchir à une version plus efficace.
  6. Écrire des fonctions pair et impair qui testent si un nombre est pair ou impair.

  7. Écrire une fonction combinaison qui calcule les combinaisons de k éléments parmi n en utilisant une identité connue du triangle de Pascal.

  8. Écrire la fonction A de Ackermann :

    \left\{ \begin{array}{l} A(0, n) = n+1\\ A(m, 0) = A(m-1, 1)\\ A(m,n) = A(m-1, A(m, n-1))\end{array}\right.

    1. La tester sur l’entrée (3,0)
    2. La tester sur l’entrée (3,6)
    3. La tester sur l’entrée (3,7)
    4. La tester sur l’entrée (4,0)
    5. La tester sur l’entrée (4,1)