Comment calculer la factorielle de n en langage C : 1. Calculez la factorielle via une boucle for, un code tel que "for (i = 1; i <= n; i++){fact *= i;}" ; 2. Via une boucle while Pour calculer factorielle, le code est comme "while (i <= fact="" int="" res="n;if" n=""> 1)res...".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version c99, ordinateur Dell G3.
Comment calculer la factorielle de n en langage C ?
Langage C pour trouver la factorielle de n :
Concernant le problème de trouver la factorielle de n, regardons d'abord une question et utilisons la question pour trouver le point de rupture.
Description du problème
Étant donné un entier n, trouvez sa factorielle, 0≤n≤12
Entrée
Entrez un nombre n
Sortie
sortie Un numéro représentant la factorielle de n
Sample Input
5
Sample Output
120
Puisque nous recherchons des factorielles, le point de rupture est évident,
La percée Le point est : Factorial
Concept et contexte de la factorielle :
1️⃣Concept :
La factorielle d'un entier positif est le produit de tous les entiers positifs inférieurs et égaux à ce nombre, et la factorielle de 0 vaut 1. La factorielle d’un nombre naturel n s’écrit n!.
2️⃣Contexte :
En 1808, Christian Kramp (1760~1826) introduit cette notation.
3️⃣Méthode de calcul de factorielle :
Tout nombre naturel n supérieur ou égal à 1 Méthode d'expression factorielle : n!=1×2×3×…×(n-1)×n ou n!= n× (n-1) !Remarque : La factorielle de 0 est 1, ce qui correspond à 0 ! =1. 1 = 1
2 ! = 2 * 1 = 2
3 = 3 * 2 * 1 = 6
…
n = n * (n-1) *… * 2 * 1
①boucle for
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i; for (i = 1; i <= n; i++) { fact *= i; } printf("%d\n", fact); return 0;}
5120--------------------------------Process exited after 1.475 seconds with return value 0请按任意键继续. . .
②while loop
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i = 1; while (i <= n) { fact *= i; i++; } printf("%d\n", fact); return 0;}
6720--------------------------------Process exited after 1.549 seconds with return value 0请按任意键继续. . .
1️⃣Première méthode d'écriture
#include <stdio.h>int Fact(int n);int main() //主函数{ int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;} int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}
1️⃣写法一
75040--------------------------------Process exited after 2.563 seconds with return value 0请按任意键继续. . .
测试样例:7
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7
= 5040
#include <stdio.h>int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}int main() //主函数 { int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;}
当然也可以写成这样:
2️⃣写法二
Échantillon de test : 7
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
6720--------------------------------Process exited after 1.829 seconds with return value 0请按任意键继续. . .
2️⃣Méthode d'écriture deux
rrreeeExemple de test : 6
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!