Pb boucles et factoriel en algo

lucile -  
 new -
Bonjour, voila j'ai un tit soucie je cherche a créer un programme permettant de calculer la factoriel d'un nombre mais je n'y arrive pas ca me donne 0 et je sait pas pq sa fait un ti moment que je cherche sans succé aider moi svp


var
f : entier
i : entier
n : entier


début

afficher ("entrer n")
saisir (n)

i <- 0

tant que i < n faire
f<- (f * i) * (n-1)



i<- i+1

ftant

affichage ("n! : ", f)

fin

5 réponses

knuckles
 
Va sur ce site :
http://www.haypocalc.com/manuel/1.6/fct/factorial.php

Ya un algo Itératif et un récursif pour le calcul du factoriel
L'Itératif est plus simple à mettre en place
0
lucile
 
merci pour ta réponce je suis aller voire je sait maintenant que c'est mon calcule qui foire mais j'ai essayer ceux de ton site et sa ne marche pas non plus c'est bizzard
0
knuckles
 
ah bon ? pourtant je viens d'essayer de faire l'algo à la main et ça à l'air de fonctionner pourtant..

Tu peux copier ton bout de code stp ?
0
lucile
 
en fait je veut le faire avec un calcule simple sans le si
0
lucile
 
juste une boucles help me please
0
knuckles
 
??? Ya pas de boucle là ???


f = 1;

Pour (i=2, i<=n, i++)

f = f * i;

FinPour

afficher (f);
0

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

Posez votre question
lucile
 
j'ai pas super compris sa en fait

f = 1;

Pour (i=2, i<=n, i++)

f = f * i;

FinPour

afficher (f);
0
knuckles
 
Si n=0 alors 0!=f=1 (ne rentre pas dans la boucle)

Si n=1 alors 1!=f=1 (ne rentre pas dans la boucle)

Si n=2 alors le programme rentre une fois dans la boucle f=1*2

Si n=3 alors le programme rentre 2 fois dans la boucle f=1*2=2 puis f=2*3=6


En fait, en faisant démarrer la boucle à i=2 il exclue les 2 cas bizarres qui sont 1! et 0! qui font tout deux 1
0
new
 
var
f : entier
i : entier
n : entier
début
afficher ("entrer n")
saisir (n)
i <- 1
f <- 1
tant que i <= n faire
f<- (f * i)
i<- i+1
ftq
affichage ("n! : ", f)
fin
0