IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Explication calcul de factorielle


Sujet :

C

  1. #1
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut Explication calcul de factorielle
    Bonjour,
    j'apprends le C en suivant le cours d'un livre et pour l'écriture d'une fonction factorielle, il y a un commentaire que je ne comprends pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    /* factorielle.cpp
    Calcul récursif de la factorielle d'un entier n >= 0 */
    #include <stdio.h> // printf, scanf
    // Avec 16 bits, n doit être compris entre 0 et 7 0! = 1, 7! = 5 040
    // Avec 32 bits, n doit être compris entre 0 et 14 14! = 1 278 945 280
    long factorielle (int n) {
        if (n == 0) {
            return 1;
        } else {
            long y = factorielle (n-1);
            return n*y;
        }
    }
    void main () {
        printf ("Entier dont on veut la factorielle (n<=14) ? ");
        int n; scanf ("%d", &n);
        printf ("Factorielle %d est : %ld\n", n, factorielle (n) );
    C'est le commentaire :
    // Avec 16 bits, n doit être compris entre 0 et 7 0! = 1, 7! = 5 040
    // Avec 32 bits, n doit être compris entre 0 et 14 14! = 1 278 945 280
    que je ne comprends pas....

    Quelqu'un aurait-il une explication ?

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Bonjour,

    Un entier 16 bits signé peut représenter les valeurs entières comprises entre -32768 et 32767 ;
    Un entier 32 bits signé peut représenter les valeurs entières comprises entre -2147483648 et 2147483647 ;

    Par conséquent, 7! et 14!, respectivement, sont les factorielles maximum que tu peux représenter dans ces entiers sans dépasser leur capacité.

  3. #3
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Merci pour les éclaircissements (désolé pour le niveau débutant de la question mais je commence tout juste ;-) )

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    À ton service.

    Sache qu'il existe le sous-forum « C→Débuter » pour cela. J'y ai déplacé ton message.

    Bonne continuation sur le site.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculer la factorielle en java?
    Par inptiste1987 dans le forum Débuter avec Java
    Réponses: 20
    Dernier message: 08/11/2018, 00h02
  2. exception dans un calcul de factorielle
    Par ranell dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2007, 20h01
  3. Prog pour calculer la factorielle d'un nombre
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2007, 10h42
  4. Calcul du factorielle
    Par knecmotet dans le forum C
    Réponses: 15
    Dernier message: 16/09/2005, 12h33
  5. fonction qui calcule la factorielle ?
    Par piff62 dans le forum C
    Réponses: 8
    Dernier message: 27/02/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo