n!函數用C語言其實可以這樣!

陽哥( )認為:在寫程序之前首先要理清求n!的思路。要求一個數n的階乘n!也就是用n*(n-1)*(n-2)*......*2*1,那麼反過來從1一直乘到n依然成立。當n為0和1的時候我們單獨考慮,此時它們的階乘均為1。

n!函數用C語言其實可以這樣!

求得結成的最終結果,這裡我們要給他定義為單精度或雙精度類型,如果定義為整型就很容易有溢出現象。

求n!方法

先來給大家看看輸出的結果:


n!函數用C語言其實可以這樣!

編程顯示

n!函數用C語言其實可以這樣!

輸出結果


編程如下:

#include<stdio.h>

/*引用預處理命令,預處理包含stdio.h的頭文件*/

main()

/*定義一個主函數,所有程序在執行前都開始於主函數,且結束於主函數*/

{

int i=2,n;

/*定義整型變量i和n,並賦值i的值為2*/

float fac=1;

/*定義單精度類型變量fac,並賦值為1,fac的含義是階乘值*/

printf("please input an interger>=0.\\n");

/*輸出函數:(請輸入一個大於等於0的變量:),其中interger是C語言中的變量代表符而已,沒有具體含義*/

scanf("%d",&n);

/*輸入n值*/

if(n==0||n==1)

/*如果n為0值或者n為1值;||指的是邏輯或*/

{

printf("factorial is 1.\\n");

/*輸出函數:(這個階乘值為1.)換行*/

}

while(i<=n)

/*當i值小於等於n時*/

{

fac=fac*i;

/*將fac值與i值相乘,並賦值給fac*/

i++;

/*i值累加*/

}

printf("factorial of %d is:%.2f.\\n",n,fac);

/*輸出函數:(整型的階乘值為:);%d指的是n,指的類型即整型,%.2f指的是fac,即單精度類型,其中.2指的是保留兩位小數*/

return 0;

/*返回空值,0指空,沒有,即將0返回給主函數main,其目的是告訴給main函數此程序執行完了*/

}

如果大家有問題,歡迎大家留言討論,我都會一一解答呦,歡迎關注,給你不一樣的自己!


分享到:


相關文章: