Les sempiternelles suites de Fibonnaci…, on les retrouve toujours partout en progra, comme la tour de Hanoï dans n’importe quel jeu d’énigmes d’ailleurs…
Voici donc un script bash permettant de calculer la suite de Fibonnaci. Pour rappel, une suite de Fibonnaci est une fonction récursive et se calcule de la façon suivante :
a=0 b=1 fibonnaci() { for ((i=0;i<valeur;i++)) do echo -n "$a " Z=$((a+b)) a=$b b=$Z done echo -e "\n┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -e "┃ Et F($valeur) = \e[31m$a\e[0m" }
# Affichage de tous les termes decompte() { j=$(($valeur-1)) k=$(($valeur-2)) echo -n "F($j)+F($k)" }
# Programme principal echo -e "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -e "┃ SUITES DE FIBONNACI " echo -en "┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" read -p $'\n┃ Entrer une valeur : \e[31m' valeur echo -en "\e[0m" echo "┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -n "┃ Calcul de : F($valeur) = " decompte echo -e "\n┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -e "┃ Les \e[31m$valeur\e[0m premiers termes de la suite de Fibonnaci sont :" echo -en "┃ " fibonnaci echo "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
Le retour terminal
Affichage dans le terminal :
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┃ SUITES DE FIBONNACI ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┃ Entrer une valeur : 10 ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┃ Calcul de : F(10) = F(9)+F(8) ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┃ Les 10 premiers termes de la suite de Fibonnaci sont : ┃ 0 1 1 2 3 5 8 13 21 34 ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┃ Et F(10) = 55 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Script utile
Le script épuré :
#!/bin/bash
# Fonction Fibonacci a=0 b=1 fibonnaci() { for ((i=0;i<valeur;i++)) do echo -n " $a" Z=$((a+b)) a=$b b=$Z done echo -e "\n F($valeur) = $a" }
# Affichage de tous les termes decompte() { j=$(($valeur-1)) k=$(($valeur-2)) echo "F($j)+F($k)" }
# Programme principal read -p $' Entrer une valeur : ' valeur echo -n " Calcul de : F($valeur) = " decompte echo " Les $valeur premiers termes de la suite de Fibonnaci sont :" fibonnaci