Qu'est ce que tu ne comprends pas ? As-tu vu la réccursivité ? La fonction factorielle est un parfait exemple pour apprendre ce concept.
Pour ce qui est du main, c'est la première fois que je vois ça en C ! (en même temps je n'ai que 3 ans d'expérience ) Mais, dans l'idée, il suffit de demander un nombre a l'utilisateur et d'afficher la factorielle de ce nombre.
Oui j'ai bien vu la récursivité mais j'ai mal compris. si tu peut m'expliquer avec l'exemple que j'ai donné ? 3 ans d'expériences c'est déja plus que moi ^^!
@ruquier, je voulais dire que c'est la première fois que je vois des chevrons utilisés de cette manière
@LucLemaire1, on va dire qu'on veut calculer la factorielle de 4.
On va donc calculer fact(4), or fact(4) = fact(3) * 4. Seulement il faut maintenant calculer fact(3), qui lui même vaut fact(2) * 3 ! De la même manière : fact(2) = fact(1) * 2. Et que voyons nous ? fact(1), on sait que c'est égal à 1 ! Donc va pouvoir calculer fact(2), qui permettra de calculer fact(3), qui permettra a son tour de calculer fact(4).
Pour résumer :
- On veut fact(4)
- On passe par fact(3) * 4. On veut fact(3)
- On passe par fact(2) * 3. On veut fact(2)
- On passe par fact(1) * 2. On veut fact(1), et on l'a déjà, c'est notre axiome en quelque sorte. Donc fact(1) = 1.
- On calcule fact(2) = fact(1) * 2 = 1 * 2 = 2;
- On calcule fact(3) = fact(2) * 3 = 2 * 3 = 6;
- On calcule fact(4) = fact(3) * 4 = 6 * 4 = 24;
Par rapport à l'algorithme, plutôt que de traiter directement fact(n), il va traiter fact(n-1). Et il continuera de faire ça tant que n est différent de 1. Quand n == 1, le programme renvoie les valeurs les unes après les autres comme vu ci dessus. C'est un programme qui s'appelle lui même, donc ça peut paraître compliqué, mais tu peux chercher des schéma, ou des cours sur openclassroom.
11. Calcul de la factorielle : Le programme demande à l'utilisateur d'entrer 10 nombre et calcule sa factorielle. Et fait la division successive de c différents factorielle de Tél en sorte que le tt premier et diviser par le suivant, jusqu'au dernier.
Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)