c語言計算n的階乘的方法:1、通過for循環計算階乘,代碼如“for (i = 1; i <= n; i++){fact *= i;}”;2、通過while循環計算階乘,代碼如“while (i <= fact="" int="" res="n;if" n=""> 1)res...”。
Problem Description
給定一個整數n,求它的階乘,0≤n≤12
Input
輸入一個數n
Output
輸出一個數,表示n的階乘
Sample Input
5
Sample Output
120
既然是求階乘的,那突破點就很明顯,
突破點就在:階乘
階乘的概念及背景:
1??概念:
一個正整數的階乘(factorial)是所有小于及等于該數的正整數的積,并且0的階乘為1。自然數n的階乘寫作n!。
2??背景:
1808年,基斯頓·卡曼(Christian Kramp,1760~1826)引進這個表示法。
3??階乘的計算方法:
任何大于等于1 的自然數n 階乘表示方法:
n!=1×2×3×…×(n-1)×n 或 n!=n×(n-1)!
注意:0的階乘為1,即 0!=1。
1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
…
n! = n * (n-1) *… * 2 * 1
在了解這些之后,可以開始先嘗試用代碼進行實現一下,然后再看下面代碼做一次檢查。
關于C語言實現n的階乘,目前入門階段,我們主要有以下兩種寫法:
①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;}
測試樣例:5
1 * 2 * 3 * 4 * 5 = 120
5120--------------------------------Process exited after 1.475 seconds with return value 0請按任意鍵繼續. . .
②while循環
#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;}
測試樣例:6
1 * 2 * 3 * 4 * 5 * 6 = 720
6720--------------------------------Process exited after 1.549 seconds with return value 0請按任意鍵繼續. . .
1??寫法一
#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;}
測試樣例:7
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7
= 5040
75040--------------------------------Process exited after 2.563 seconds with return value 0請按任意鍵繼續. . .
當然也可以寫成這樣:
2??寫法二
#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;}
測試樣例:6
6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6
= 720
6720--------------------------------Process exited after 1.829 seconds with return value 0請按任意鍵繼續. . .
到此,相信大家對“c語言如何計算n的階乘”有了更深的了解,不妨來實際操作一番吧!這里是本站網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
郵政銀行應該算是我國比較普遍的一個銀行了,即使是很多偏遠地區也都有郵政的營業網點,而且隨著基金的快速發展,郵政也出現了一些基金產品,其中比較受關注的應該就是了,那么郵政基金定投產品有哪些呢?目前郵政儲蓄銀行將所銷售的基金產品按不同劃分標準有這幾類:首發基金產品、優選基金產品、產品組合、代銷基金產品,但實際上郵政儲蓄銀行并沒有自己的基金產品,所有的郵政銀行基金都是代銷的基金。其中郵政儲蓄銀行的基金定...
很多人不知道怎么查詢快遞的手機號。如果你是商家,想查詢某個客戶的快遞,可以通過投遞易軟件和快查功能查詢手機號或收件人姓名。如果你是買家,想通過手機號查詢快遞,可以下載一個菜鳥包裹,添加關聯的手機號。也可以打開支付寶,在當前界面點擊全部,找到我的快遞。點擊我的快遞后,當前頁面點擊更多。在當前頁面下,單擊授權管理。添加新的手機號碼以查看您的快遞。...
美國次貸危機(subprime crisis)也稱次級房貸危機,也譯為次債危機。它是指一場發生在美國,因次級抵押貸款機構破產、投資基金被迫關閉、股市劇烈震蕩引起的金融風暴。那么,美國次貸危機爆發的主要原因是什么?美國次貸危機如何解決的?一起來看看吧!美國次貸危機爆發的主要原因有:1.美國金融監管當局,特別是美聯儲貨幣政策的松緊變化。2.美國投資市場,以及全球經濟和投資環境一段時期內,情緒樂觀、持續...