Calcul factoriel par fonction recursive

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 077 fois - Téléchargée 29 fois

Contenu du snippet

pour calculer la factorielle d un nombre
(pour les debutants afin de s initier aux fonctions récursives )
fonction recursive = fonction qui s appelle elle meme

Source / Exemple :


#include <iostream>
#include <stdlib.h>
using namespace std;

int factoriel(long N)
{
if(N<=1)
return 1;
else
return(N*factoriel(N-1));
}

int main(void)
{
long N;
cout<<"Entrez le nombre: "<<endl;
cin>>N;
cout<<"Resultat: "<<factoriel(N)<<endl;
system("PAUSE");
return 0;
}

A voir également

Ajouter un commentaire

Commentaires

cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2 -
heu j'ai deja fais une source identique.
mais bon, ... c'est mieux d'en avoir deux !
vecchio56
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7 -
Une comme ca c'est déja trop
cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
surtout que le choix de la recursiviter pour le calcul d'une factoriel n'est pas justifier car c'est iteratif
morgandetoi06
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1 -
les 2 sources que j ai deposé ne sont là qu a titre d exemple de fonctions recursives, et les fonctions recursives ne sont pas tres rapides car le code est à chaque fois chargé dans la memoire.
une boucle est donc plus rapide mais plus lourde à coder...
patriarch24
Messages postés
25
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
28 mars 2006
-
plus lourde a coder ? pas forcement notamment en ce qui concerne une factorielle ;-)

int res = n;
for ( int i = n-1 ; i > 1 ; i - - )
res *= i ;

return res ;

rien de difficile la dedans si ? bon tu peux aussi changer int en long ca change rien au probleme. mais faut pas dire que c'est lourd c meme plus naturel comme maniere de faire je trouve...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.