begin process at 2012 02 12 19:31:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CALCUL FACTORIEL PAR FONCTION RECURSIVE

CALCUL FACTORIEL PAR FONCTION RECURSIVE


 Information sur la source

 Description

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

  • #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;
  • }
#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;
}



 Sources du même auteur

CLASSE FILE UTILISANT UN TABLEAU
CLASSE PILE UTILISANT UN TABLEAU
VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX
CALCUL PUISSANCE PAR FONCTION RECURSIVE
TRI DE FICHES

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de JCDjcd le 03/02/2004 20:35:18

heu j'ai deja fais une source identique.
mais bon, ... c'est mieux d'en avoir deux !

Commentaire de vecchio56 le 03/02/2004 20:43:55 administrateur CS

Une comme ca c'est déja trop

Commentaire de djl le 03/02/2004 21:19:25

surtout que le choix de la recursiviter pour le calcul d'une factoriel n'est pas justifier car c'est iteratif

Commentaire de morgandetoi06 le 03/02/2004 22:01:04

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...

Commentaire de patriarch24 le 04/02/2004 11:29:29

plus lourde a coder ? pas forcement notamment en ce qui concerne une factorielle ;-)

int res = n;
for ( int i = n-1 ; i &gt; 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...

Commentaire de TeLeTUbIz le 05/02/2004 21:59:21

J'ai bcp travaillé sur la récursivité en tant qu'étudiant.
En fait, il est bcp plus naturel d'écrire la factorielle en récursif car ca colle mieux à la définition mathématiques (ie: n! = 1 pour n=0; n*(n-1)! sinon).
Je trouve ce petit programme très intérressant car assez peu de gens connaissent la récursivité et ses applications (comparée notamment à l'itératif). Cela sert bcp (voir quasiment uniquement) dans l'intelligence artificielle pour créer des modèles.
Toutefois, la factorielle est bcp plus lourde en récursif; mais c'est l'exemple que l'on apprend en premier.

Je vais tout de suite déposer une source récursive pour la résolution d'un problème hyper-complexe: les tours de Hanoï. Bon, ca doit pas être la première fois qu'on la met. Mais elle sera bien commentée (donc je vais mettre du temps pour la poser). En itératif ce problème serait vraiment chaud (faudrait passer par l'étude de la résolution).

Commentaire de patriarch24 le 06/02/2004 11:22:52

oui en fait ca depends de la definition :)
autant pour moi ma definition est :

0! = 1

       i=n
n! = P  i
       i=1

dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)

Commentaire de patriarch24 le 06/02/2004 11:23:12

oui en fait ca depends de la definition :)
autant pour moi ma definition est :

0! = 1

       i=n
n! = P  i
       i=1

dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)

Commentaire de morgandetoi06 le 06/02/2004 12:06:31

c sur qu il faut choisir en fonction du programme, je n ai pas dit que le recursif etait adapté au calcul du factoriel, c juste pour montrer un exemple de fonction recursive simple pour pouvoir comprendre facilement
et bon la note 1/10 c un peu abusé je trouve j ai posté un petit exemple sans pretention pour les debutants c pas la peine de s'amuser à detruire la source comme ça

Commentaire de JCDjcd le 06/02/2004 17:12:34

Je suis d'accord,
La fonction factorielle est par definition (la plus simple) un fonction reccursive.
De plus c'est le meilleur exemple possible (simple) pour comprendre la reccursivite (je l'ai apprise en programmation comme ca).
Elle est tres instrucive, surtout quand on s'interresse a comment les arguments sont enpiles dans la pile pour les variables locales.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales