C/Java - Suite de Fibonacci

Dans ce tutoriel C et Java, vous allez apprendre comment compter et afficher les N premiers nombres Fibonacci.

La suite de Fibonacci est définie par:

   n ≥ 1 telle que  U1=U2=1
   et
   Un = Un-1+Un-2  pour tout n ≥ 2


C/Java - Fractal de la Suite de Fibonacci
Fractale du mot Fibonacci

1- Fibonacci en C

Le programme ci-dessous imprime les 20 premiers nombres de la suite de Fibonacci avec la méthode itérative. Chaque terme est formé en ajoutant les deux termes précédents dans la séquence, en commençant par les termes 1 et 1.
#include<stdio.h>
#include<stdlib.h>

main() {
int n1 = 1, n2 = 1, n3;
printf("%d %d ", n1 ,n2 );

for (int i = 0; i < 18; i++) { //Boucle pour les 18 prochains termes
n3= n2 + n1; //le terme suivant est la somme des deux précédents
printf("%d ", n3); //
n1 = n2 ; //Premier précédent devient 2ème précédent
n2 = n3; //Et le nombre actuel devient le précédent
}
printf("\n");
system("pause");
}
Sortie:

C++ - 20 premiers numéros de la suite de Fibonacci avec la méthode itérative

2- Fibonacci en Java:


On a choisi de faire un traitement récursive, en entrée un nombre entier n et en sortie le terme du rang n de la suite. Voici les deux cas de la récursivité :
  • si n est inférieur ou égal à 1, n prend deux valeurs 0 ou 1. fib(0)=0 et fib(1)=1.
  • sinon la récurrence commence de n qui se décrémente jusqu'à le deuxième terme.
import java.io.InputStreamReader;
import java.util.Scanner;

/*
* Compter et afficher les N premiers nombres Fibonacci.
*/
public class Fibonacci {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int N = sc.nextInt();

//afficher les N premiers nombre Fibonacci
for(int i = 1 ; i <= N ; i++)//commencer de n=1
System.out.println(i + ": " + fib(i));
}

private static int fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
}
Sortie:
20
fib(1)= : 1
fib(2)= : 1
fib(3)= : 2
fib(4)= : 3
fib(5)= : 5
fib(6)= : 8
fib(7)= : 13
fib(8)= : 21
fib(9)= : 34
fib(10)= : 55
fib(11)= : 89
fib(12)= : 144
fib(13)= : 233
fib(14)= : 377
fib(15)= : 610
fib(16)= : 987
fib(17)= : 1597
fib(18)= : 2584
fib(19)= : 4181
fib(20)= : 6765