Syntaxe java

public class Bidule {
	public static void main(String[args]) {
		int nombre, x;
		String chaine;
		boolean booleen;
		nombre = 0 + 2 * 4;
		chaine = "Bonjour" + " à tout le monde !";
		booleen = true and false or not false;

		if (x == 1) {
			System.out.println("OK");
		} else {
			System.out.println("KO");
		}
		System.out.println(f(7));
	}

	/* les fonctions seront des méthodes static */
	public static int f(int x) {
		int y = x+1;
		return y
	}
}

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 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)