思路:所謂n的階乘就是從1到n的累積,所以可以通過一個for循環(huán),從1到n依次求積即可。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計,南沙網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:南沙等地區(qū)。南沙做網(wǎng)站價格咨詢:13518219792
參考代碼:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",n);
for(i=1;i=n;i++)//for循環(huán)求累積
s=s*i;
printf("%d\n",s);
return 0;
}
/*
運(yùn)行結(jié)果:(例如求5的階乘)
5
120
*/
從桌面打開下載好的編程軟件,下圖為visual C++的打開界面。
打開編程軟件后,新建一個任務(wù),點(diǎn)擊文件,選擇C++ source file, 放在自己喜歡的文件夾下面。
輸入這段代碼,記得代碼編譯前,先要定義變量。# include stdio.hvoid main (){?? ?int n ,f =1 ;?? ?printf ("input n :");?? ?scanf("%d\n",n);?? ??? ?for (;n0;n--)?? ??? ??? ?f=f*n;?? ??? ?printf("n!=%d\n",f);?? ??? ?}
點(diǎn)擊如圖的兩個按鈕,左邊是complie是編譯的意思 ,右邊build 是連接的意思。
檢查完,沒有顯示error的情況下,最后點(diǎn)擊BuildExecute 運(yùn)行軟件。
最后一步運(yùn)行軟件后,Debug里面有個exe的可運(yùn)行程序,就是N的階乘程序了。
參考資料
百度經(jīng)驗.百度[引用時間2018-5-7]
下構(gòu)思下程序的基礎(chǔ), 讓用戶自定義輸入一個數(shù)作為階乘數(shù), 當(dāng)超過20時,輸出“Nis too big”. 需要用到IF函數(shù),以下為詳細(xì)過程。 #includeiostream us
int getFactorial(int data) //求階乘;bai
{
int resData=1;
for (int i=0;idata;i++)
{
duresData*=i;
}
return resData;
}
擴(kuò)展資料:
0!=1。
定義的必要性
由于正整數(shù)的階乘是一種連乘運(yùn)算,而0與任何實(shí)數(shù)相乘的結(jié)果都是0。所以用正整數(shù)階乘的定義是無法推廣或推導(dǎo)出0!=1的。即在連乘意義下無法解釋“0!=1”。
給“0!”下定義只是為了相關(guān)公式的表述及運(yùn)算更方便。
參考資料來源:百度百科-n!
所謂n的階乘就是從1到n的累積,所以可以通過一個for循環(huán),從1到n依次求積即可。
參考代碼:
#include "stdio.h"
int main() {
int n,i,s=1。
scanf("%d",n)。
for(i=1;i=n;i++)//for循環(huán)求累積。
s=s*i。
printf("%d\n",s)。
return 0。
注意事項:
1、任何大于1的自然數(shù)n階乘表示方法:n!=1×2×3×……×n 或 n!=n×(n-1)。
2、n的雙階乘:當(dāng)n為奇數(shù)時表示不大于n的所有奇數(shù)的乘積。
如:7!=1×3×5×7。
3、當(dāng)n為偶數(shù)時表示不大于n的所有偶數(shù)的乘積。
如:8!=2×4×6×8。
4、小于0的整數(shù)-n 的階乘表示:
(-n)!= 1 / (n+1)。
5、0的階乘:0!=0。
6、組合數(shù)公式。
法/步驟
第一步、編程的第一步就是寫頭文件,對于初學(xué)者來說,只寫一個頭文件就可以了,即#includestdio.h
第二步、就是定義我們的變量,我們需要定義一個n,用來求他的階乘,sum用來保存結(jié)果,i用來循環(huán)
第三步、就是把sum初始化,為1.千萬不要為0,保證后面的結(jié)果不出問題。
第四步、就是輸入一個n,用來求n的階乘,別忘了在前面提示一下。
第五步、就是利用for循環(huán)來求階乘。
第六步、就是調(diào)用printf(:);函數(shù)來輸出階乘結(jié)果。
拓展資料
定義
n!=1×2×3...xn
n!=X×(X-1)×(X-2)...×1
1751年,歐拉以大寫字母M表示m階乘 M=1x2x3...x...m
1799年,魯非尼在他出版的方程論著述中,則以小寫字母π表示m階乘。而在1813年,高斯則以Π(n)來表示n階乘。而用來表示n階乘的方法起源于英國,但仍未能確定始創(chuàng)人是誰。直至1827年,由于雅萊特的建議而得到流行,現(xiàn)在有時也會以這個符號作為階乘符號。
當(dāng)n較大時,直接計算n!變得不可能,這時可通過斯特靈(Stirling)公式計算近似算或取得大小范圍。
1、不是直接輸入n!,需要一定的算法才可以實(shí)現(xiàn)。具體方法是,首先打開編輯器,準(zhǔn)備好空白的C語言文件:
2、在編輯器中輸入代碼,這里所謂 n 的階乘,就是從 1 開始乘以比前一個數(shù)大 1 的數(shù),一直乘到 n。C語言中可利用循環(huán)解決,可以假設(shè)循環(huán)變量為 i,初值為 1,i 從 1 變化到 n;依次讓 i 與 sum 相乘,并將乘積賦給 sum,最后輸出sum的值就可以了:
3、在編輯器中運(yùn)行程序,隨意輸入一個數(shù),按下回車鍵,即可打印出階乘的結(jié)果來:
#include
"stdio.h"
main()
{
int
n,i;
double
p=1;//這里用的是Double,不用Int,因為Int范圍太小
printf("請輸入一個數(shù)字:");
scanf("%d",n);
for(i=2;i=n;i++)
p*=i;
printf("n!shu=%lf\n",p);
}
擴(kuò)展資料:
用Ruby求 365 的階乘。
def AskFactorial(num) factorial=1;
step(num,1){|i| factorial*=i}
return factorial end factorial=AskFactorial(365)
puts factorial
階乘有關(guān)公式
該公式常用來計算與階乘有關(guān)的各種極限。
此為斯特林公式的簡化公式。
參考資料來源:百度百科-階乘