Factorielle en langage C (avec boucle)
Fermé
Utilisateur anonyme
-
28 févr. 2009 à 11:40
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 févr. 2009 à 12:05
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 févr. 2009 à 12:05
A voir également:
- Factorielle en c boucle while
- Factorielle sur casio ✓ - Forum Caisse enregistreuse
- Bash do while ✓ - Forum Shell
- Mon pc s'allume et s'éteint en boucle - Forum Matériel informatique
- Freebox redémarre en boucle ✓ - Forum Freebox
- Redmi note 10 redemarre en boucle - Forum Xiaomi
3 réponses
sebastien61
Messages postés
495
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
28 septembre 2010
59
28 févr. 2009 à 11:53
28 févr. 2009 à 11:53
Salut,
pour ce qui est de la boucle :
Pour la méthode récursive, c'est plus facile :
Si tu as des questions, n'hésite pas !
pour ce qui est de la boucle :
int n;// l'entier dont tu cherches a calculer la factorielle int resultat = 1; // le résultat du calcul int i = n; // un indice temporaire while (i>1) { resultat = resultat * i; i--; // equivalent à i = i-1; } // ici résultat vaut n!
Pour la méthode récursive, c'est plus facile :
int facto(int n) { if (n==0) // on teste le cas simple : cas ou n=0 return 1; else { return n * facto(n-1); // sinon on retourne n * facto(n-1) } }
Si tu as des questions, n'hésite pas !
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
28 févr. 2009 à 11:55
28 févr. 2009 à 11:55
Une boucle permet de répéter une action (toujours la même) tant qu'une condition est vraie.
Par exemple
La boucle for permet de faire plusieurs fois la même action un certains nombre de fois
La boucle a ajouté 1 à C à chaque fois tant que 1 était inférieur à 10.
Un factoriel c'est multiplier le résultat par l'entier suivant. Par exemple !5 = 1*2*3*4*5
de là tu peux créer ta boucle. La plus courte est une boucle for, cependant si tu ne l'as pas compris, une boucle while marche très bien.
Maintenant, un entier cour est signé 8 bits, il va donc de -128 à 127
un entier long est signé 16 bits, Il faut donc regarde en puissance de 2 : 2^0 + 2^1+2^2+...+2^16. et tu auras le nombre max qu'on peut prendre sachant qu'il y a autant de négatif que de positif à 1 près
Pour la précision simple, elle prend un certains nombre de décimal, la précision double... en prend le double (fais une recherche sur le web, tu trouveras facilement). Dans ton exo tu travailles sur des entiers... à toi de faire ta conclusion
Par exemple
tant que i<1 ecrire trop petit lire i fin tant que
La boucle for permet de faire plusieurs fois la même action un certains nombre de fois
c=1 pour i=1 à i =10 par pas de 1 faire c+1 fin pour
La boucle a ajouté 1 à C à chaque fois tant que 1 était inférieur à 10.
Un factoriel c'est multiplier le résultat par l'entier suivant. Par exemple !5 = 1*2*3*4*5
de là tu peux créer ta boucle. La plus courte est une boucle for, cependant si tu ne l'as pas compris, une boucle while marche très bien.
Maintenant, un entier cour est signé 8 bits, il va donc de -128 à 127
un entier long est signé 16 bits, Il faut donc regarde en puissance de 2 : 2^0 + 2^1+2^2+...+2^16. et tu auras le nombre max qu'on peut prendre sachant qu'il y a autant de négatif que de positif à 1 près
Pour la précision simple, elle prend un certains nombre de décimal, la précision double... en prend le double (fais une recherche sur le web, tu trouveras facilement). Dans ton exo tu travailles sur des entiers... à toi de faire ta conclusion
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 568
28 févr. 2009 à 12:05
28 févr. 2009 à 12:05
Salut,
Nous n'avons pas encore vu les boucles en cours, alors est-ce que quelqu'un pourrait m'aider à écrire ces programmes ?
Je ne pense pas que le prof vous a donner des exercices avec les boucles dans les avoir déjà faites pendant les cours.
Je ne vois pas non plus un effort de ta part pour nous montrer ce que tu as fais.
Ce que je vois, c'est que tu demandes de faire les exercices à ta place.
La réponse et là Demander de l'aide pour vos exercices sur CCM
Par respect pour ceux qui ont déjà posté une solution, je ne vais pas supprimé le message.
Ca sera pour les suivantes si tu continues dans cette direction.
Tu as une devinette ici http://www.commentcamarche.net/forum/affich 11290011 devinette en langage c?#1
Je ferme.
Nous n'avons pas encore vu les boucles en cours, alors est-ce que quelqu'un pourrait m'aider à écrire ces programmes ?
Je ne pense pas que le prof vous a donner des exercices avec les boucles dans les avoir déjà faites pendant les cours.
Je ne vois pas non plus un effort de ta part pour nous montrer ce que tu as fais.
Ce que je vois, c'est que tu demandes de faire les exercices à ta place.
La réponse et là Demander de l'aide pour vos exercices sur CCM
Par respect pour ceux qui ont déjà posté une solution, je ne vais pas supprimé le message.
Ca sera pour les suivantes si tu continues dans cette direction.
Tu as une devinette ici http://www.commentcamarche.net/forum/affich 11290011 devinette en langage c?#1
Je ferme.