Prog bash récursif factorielle

prog bash récursif factorielle

Bonjour,
je souhaiterais avoir des suggestions de code pour un programme récursif comptant la factoriel d'une valeur donnée.

J'ai fait le prog en itératif, mais en récursif...

voici ci-joint mon prog en itératif:

#!/bin/bash

declare -i r=1

for ((i=1;i<=$1;i++))
do

((r=r*i))

done

echo "factorielle = " $r
~
Merci d'avance pour vos réponses
Configuration: Linux Debian
Mozilla 1.8.1.8

5 réponses

  1. Je sais pas le syntaxe de langage qui vous utilisé mais ve vais vous donnez une solution algorithmique itérative puis récursive :

    /* solution itérative :*/

    fonction factoriel (n : entier):entier
    var:
    f:entier
    debut
    pour i de 1 a n faire
    f=f*i
    fin pour
    retourner(f)
    fin

    /* solution récursive */

    fonction factoriel(n: entier): entier
    var:

    debut

    si n=0 alors factoriel =1
    sinon factoriel= n * factoriel(n-1)
    finsi

    fin
    0
    1. Modérateur
      Salut,

      C'est la méthode qui t'importe ou le résultat ?
      0
      1. la méthode récursive
        0
    2. Modérateur
      #!/bin/bash
      
      declare -i r=1
      
      for ((i = 1;i <= $1; i++))
      do
      echo $r
      r=$((r * i))
      
      done
      ;-))
      0
      1. salut et merci pour ta réponse,

        en fait, pour toir le prog devient récursif si on met "r=$((r * i)" dans la boucle ?

        A+
        0
    3. Modérateur
      Voir des réponses beaucoup plus pointues et beaucoup plus compétentes que la mienne, là ;-))
      0