Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bahs] La fonction recursive factorielle

    17 mai 2006 à 16:41:10

    #!/bin/bash

    factorielle ()
    {
       
        case $# in
            1)
                factorielle=1
                n=${1};;
            *)
                echo "USAGE: ${0} suivi d'un nombre à mettre ne factorielle"
                exit 1;;
        esac
        if [ ${n} -gt 0 ]
            then if [ ${n} -ne 0 ]
                then factorielle=$(expr ${factorielle} \* ${n})
                n=$(expr ${n} - 1)
                echo $(expr ${factorielle} \* $(factorielle ${n}))
            fi
        fi
    }


    echo $(factorielle ${1})


    Est-ce que quelqu'un sait pourquoi expr me retourne une erreur ?
    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2006 à 20:24:03

      Parce que ta variable factorielle a le même nom que la fonction, ce qui le dérange ? (si j'ai bien compris ton code)

      Par ailleurs ton code me parait un peu douteux, il est où le "else if $n = 0, alors 1" ?
      • Partager sur Facebook
      • Partager sur Twitter

      [Bahs] La fonction recursive factorielle

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown