Cara mengira faktorial n dalam bahasa C: 1. Kira faktorial melalui gelung for, kod seperti "untuk (i = 1; i <= n; i++){fakta *= i ;}"; 2 , hitung faktorial melalui gelung while, kod seperti "while (i <= fact="" int="" res="n;if" n=""> 1)res..." .
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi c99, komputer Dell G3.
Bagaimana untuk mengira faktorial n dalam bahasa C?
Cari faktorial bagi n dalam bahasa C:
Mengenai Untuk mencari masalah faktorial bagi n, mari kita lihat soalan dahulu dan gunakannya untuk mencari titik terobosan.
Huraian Masalah
Diberi integer n, cari faktorialnya, 0≤n≤ 12
Input
Input nombor n
Output
Output nombor, mewakili n Faktor
Sampel Input
5
Sampel Output
120
Memandangkan kami mencari faktorial, titik terobosan adalah jelas >
Konsep dan latar belakang faktorial: 1️⃣Konsep:
Faktorial integer positif (faktorial ) ialah hasil darab semua integer positif kurang daripada dan sama dengan nombor ini, dan faktorial 0 ialah 1
. Faktorial bagi nombor asli n ditulis n!.2️⃣Latar Belakang:
Pada tahun 1808, Christian Kramp (1760~1826) memperkenalkan tatatanda ini.
3️⃣Kaedah pengiraan faktorial:
Kaedah ungkapan faktorial bagi sebarang nombor asli n lebih besar daripada atau sama dengan 1:
n !=1×2 ×3×…×(n-1)×n atau n!=n×(n-1)!Nota: Faktorial bagi 0 ialah 1, iaitu 0! =1. 1! = 1
2! * 2 * 1Selepas memahami perkara ini, anda boleh mula mencuba untuk melaksanakannya dengan kod, dan kemudian semak kod berikut.
3. Menyelesaikan
Berkenaan faktorial n yang dilaksanakan dalam bahasa C, pada peringkat pengenalan semasa, kami mempunyai dua cara penulisan berikut:
Jenis pertama: gelung
②while loop
#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;}
Contoh ujian: 6
1 * 2 * 3 * 4 * 5 * 6 = 720
5120--------------------------------Process exited after 1.475 seconds with return value 0请按任意键继续. . .
Jenis kedua: Rekursi (fungsi memanggil dirinya sendiri)
#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️⃣写法一
Sudah tentu ia juga boleh ditulis seperti ini:
#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;}
Contoh ujian: 6
75040--------------------------------Process exited after 2.563 seconds with return value 0请按任意键继续. . .
= 720
2️⃣写法二
[Cadangan berkaitan:
#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;}
Atas ialah kandungan terperinci Bagaimana untuk mengira faktorial n dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!