Factorielle

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 398 fois - Téléchargée 31 fois

Contenu du snippet

Avec ce code on peut produire un fichier executable qui calcul la factorielle d'un entier n ( 0=<n<171) en appelant le programme depuis la ligne de commandes (MSDOS par exmple) suivit de l'entier n. Ex. >factorielle 4

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>

void usage (char *s){

     printf("Usage : %s nombre (0<= nombre <171)\n", s);
     exit (-1);

}		

double factorielle (int n){
    if (n == 0)
           return 1;  /*Constat de base : 0!=1 */

    else
           return  (n * factorielle (n-1));
}

int main (int argc, char *argv[])
{
    int nombre;
	
    if (argc!=2)
	usage (argv[0]);

     nombre = atoi (argv[1]);

     if (nombre < 0 || nombre > 170)
	usage (argv[0]);

     printf("La factorielle de %d est %.0f\n", nombre, factorielle(nombre));

     exit(0);

}

A voir également

Ajouter un commentaire Commentaires
Messages postés
25
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
28 mars 2006

quel civisme....
bon pour revenir au truc : le maximum que l'on peut calculer sans depasser la capacite des entiers est 12! a 13 c'est deja cuit... (calcule avec des unsigned long)
ensuite le programme factorielle n'est pas forcement recursif et si notre ami Ipikachu58 avait bien regarde, il aurait vu que le source propose un programme recursif... alors avant de t'enerver et de balancer des trucs comme ca apprends ce qu'est un programme recursif on en reparlera apres.
Messages postés
76
Date d'inscription
lundi 30 septembre 2002
Statut
Membre
Dernière intervention
25 mars 2007

he connard! dit pas ca comme ca, c'est pas parse que sa methode est differente qu'elle n'est pas bonne!
si t'est la pour repondre comme ca aux post, tu peut te casser, cretin!
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
3
c'est de la merde ce truc le programme de la factorielle est récursif ce que tu nous propose ne l'ai pas du tout.

Ah chier
Messages postés
31
Date d'inscription
dimanche 15 juillet 2001
Statut
Membre
Dernière intervention
8 janvier 2009

ouep la capacité max d'un entier(non signé d'ailleur, pas comme dans ce source) est 4294967295, ce qui correspond à qqchose entre 12! et 13! :p mais bon... le principe est bon
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006

Ce n est certainement pas la valeur de la factorielle que tu calcule comme ca, en tout cas pour des nombre de + de 10 chiffres. Apres c est une valeur approchee... Pour pouvoir le faire il faut utiliser une classe speciale pour les grands entiers (a creer soi meme ou alors utilise NTL)

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.