Prog bash récursif factorielle

jakol -  
 abass -
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
A voir également:

5 réponses

Anis
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

C'est la méthode qui t'importe ou le résultat ?
0
jakol
 
la méthode récursive
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
#!/bin/bash

declare -i r=1

for ((i = 1;i <= $1; i++))
do
echo $r
r=$((r * i))

done
;-))
0
jakol
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Voir des réponses beaucoup plus pointues et beaucoup plus compétentes que la mienne, là ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
jakol
 
salut

merci bcp pour vos réponses

A+
0
abass
 
voici un bon script
declare -i r=1

echo "donner un entier"

read entier
for ((i = 1;i <= $entier; i++))
do
r=$((r * i))

done
echo $r
0