Le triangle de pascal. [Fermé]

Signaler
-
Messages postés
594
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
19 juin 2021
-
Bonjour à tous, j'ai un code à faire sur le triangle de pascal et les consignes sont les suivantes :

- Vous devez écrire une fonction factorielle(). Elle prend en paramètre un entier n quelconque et retourne la factorielle de cet entier (n!).

- Écrire une fonction parmi() qui prend en paramètre des nombres entiers i et j et retourner "j parmi i".
On sait que : "j parmi i" = i! / (j!×(i−j)!)

- Écrire une fonction chaine_triangle_Pascal() qui prend n comme paramètre et qui renvoie une chaîne de caractère chaine.

Je ne comprend pas pourquoi dans mon code : on m'explique que la syntaxe est invalide dans la ligne 2 et 3. Je n'ai pour l'instant fait que le premier tiret. Pourriez vous m'aider ? Merci beaucoup !!


def factorielle(n):
  n=input("Entrez un nombre entier")
  return n!


Configuration: Windows / Chrome 79.0.3945.79

5 réponses

Messages postés
869
Date d'inscription
dimanche 1 novembre 2015
Statut
Membre
Dernière intervention
3 mai 2021
114
Bonsoir,

Le signe ! est intégré au langage python ?
Messages postés
869
Date d'inscription
dimanche 1 novembre 2015
Statut
Membre
Dernière intervention
3 mai 2021
114 > ilyan174
Mauvaise réponse.
Une petite recherche te suffirait pour répondre à ta question ! http://python.jpvweb.com/python/mesrecettespython/doku.php?id=factorielle

Bien évidemment que ce n'est pas la meilleure façon d'apprendre un langage, d'abord on coince et on réfléchit, si on sèche complètement on fait une recherche.

Bonne soirée
Messages postés
16060
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 juin 2021
868
bonjour, où as-tu lu que tu pouvais ainsi utiliser le point exclamation en python?
par ailleurs, pourquoi la ligne 2?
est-ce ton premier exercice en python?
Ce n'est pas mon premier exercice en python mais mon professeur à écrit la consigne telle qu'elle alors il se peut que j'ai confondu le n! avec une phrase exclamative...
Bonsoir,

- Vous devez écrire une fonction factorielle(). Elle prend en paramètre un entier n quelconque et retourne la factorielle de cet entier (n!).

A ton niveau, tu devrais tout de même savoir comment se calcule la factorielle d'un nombre.

Et au cas où --> https://fr.wikipedia.org/wiki/Factorielle
Messages postés
9871
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 juin 2021
2 135
Bonjour

Tu devrais commencer par séparer ton programme principal (qui va utiliser ta fonction) et l'implémentation de ta fonction

def facto(n):
    .... à toi d'écrire le code qui calcule fff
    return fff

# programme principal
n = int(input("donner un entier n :  "))
f = facto(n)
print("factorielle ", n, " = ", f)


Cdlmnt
Messages postés
594
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
19 juin 2021
140
Désolé, je tombe sur le sujet un peu tard, mais comme personne n'a vraiment donné de solution... Je me permet de t'apporter une aide, qui pourra peut-être aider d'autres personnes après... Qui sait ?

Tu as deux grandes méthodes de le faire :
- Une fonction récursive, c'est à dire une fonction qui va s'appeler elle même, dans ce cas il faut revenir à la définition de la factorielle et on retrouve vite la solution :
0! = 1
n! = n*(n-1)!

-Une boucle qui marchera sensiblement de la même façon...

Bonne chance et désolé de répondre si tard.
Bonjour,

On utilise la récursivité que lorsqu'on n'a pas d'autre choix, ici il n'y a AUCUN intérêt à utiliser une récursivité alors qu'une bête boucle for fait le job.
Messages postés
594
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
19 juin 2021
140 > trifou
J'ai précisé les deux, car c'est pas rare de voir des profs demander de faire des fonctions récursives pour aborder le principe... Mais je suis bien d'accord avec toi, et j'aurais dû préciser d'utiliser la boucle si il n'y a aucune contre-indication !
Merci.