
public static int fib(int n) {
if (n<=0) throw new IllegalArgumentException("n<=0");
switch (n) {
case 1:
case 2:
return 1;
default:
int x=1, y=1;
for (int i=2; i<n; i++) {
int old = x;
x = y;
y += old;
}
return y;
}
}
Ce n'est pas parce qu'on a un diplôme en Mathématiques qu'on doit tout décomposer aux définitions de base. Et en plus, le concept de revenir à la définition est incompatible avec l'utilisation de la formule explicite (qui a le grand inconvénient de sortir du corps des entiers).