C 求n的階乘,用c 語言求n的階乘

時間 2021-10-17 04:45:57

1樓:理陽波

以下為c++求階乘的四種方法,需要注意的是,各個**只是提供了求階乘的思路,以便在實際需要時再來編碼,各個程式都在1到10內測試正確。

1、該程式在每次輸入n時,都會呼叫fac()來暴力計算以得到結果:

2、該程式利用了陣列記錄已得到的結果,並在計算下一個結果時利用了已得到的結果。

3、應該說該**實用性最差,主要是來學習靜態區域性變數來了。

4、此**較不常用,思路比較新奇,但可以嘗試。

擴充套件資料執行程式後,1-10的結果如下,可供檢驗:

1、當i為:1時階乘值為:1

2、當i為:1時階乘值相加為:1

3、當i為:2時階乘值為:2

4、當i為:2時階乘值相加為:3

5、當i為:3時階乘值為:6

6、當i為:3時階乘值相加為:9

7、當i為:4時階乘值為:24

8、當i為:4時階乘值相加為:33

9、當i為:5時階乘值為:120

10、當i為:5時階乘值相加為:153

11、當i為:6時階乘值為:720

12、當i為:6時階乘值相加為:873

13、當i為:7時階乘值為:5040

14、當i為:7時階乘值相加為:5913

15、當i為:8時階乘值為:40320

16、當i為:8時階乘值相加為:4623317、當i為:9時階乘值為:362880

18、當i為:9時階乘值相加為:40911319、當i為:10時階乘值為:362880020、當i為:10時階乘值相加為:4037913

2樓:

c++求n的階乘**如下:

#include

using namespace std;

int fac(int);

int main()

int n;

while(cin>>n)

cout

int fac(int x)

register int i,f=1;  //定義暫存器變數for(i=1;i<=x;i++)

f*=i;

return f;

3樓:匿名使用者

int factorial(int n)

while(carry)//如果有進位 }printf("結果是:\n%d ! = ",n);//顯示結果for(i = digit; i >=1; --i)return 0;}

4樓:磨曠方旭堯

這要看看printf這個函式是如何使用的

printf("1~20!階乘之和sum=%d\n",sum);

這個函式是輸出的意思

引號前面的都是直接輸出的意思,「1~20!階乘之和sum=」%d表示在這裡要輸出一個整數,整數的值在引號外面給出(這裡是後面的sum),\n表示輸出一個換行符,這樣在你輸出這一行之後相當於又輸出了個回車

5樓:王姝邱綺露

我就簡單寫個吧;

intn=5;

//比如求5的階乘

intresult=1;

for(int

i=1;

i<=n;

i++)

//迴圈完成後,result就是結果

樓上用的是遞迴的方法。初入門的話,可能看起來有點難度。

呵呵,慢慢來吧,學c++,一定要回遞迴的。

6樓:匿名使用者

for (;;)

console.writeline("的階乘值為", num, jc);

console.writeline("你是否還需要使用此階乘計算器,1-是,2-否");

int numb = int.parse(console.readline());

if (numb == 1)

if (numb == 2)

}console.readkey();

7樓:匿名使用者

#include

using namespace std;

int main()

cout << n << " 的階乘為:"<< " = " << factorial;

return 0;}

8樓:匿名使用者

#include

using namespace std;

long long f(long long n)else

}int main()

用c++語言求n的階乘 10

9樓:很多很多

1、開啟vs6.0軟體,準抄備一個後襲綴為cpp的檔案,在c++檔案中首先寫入標頭檔案,定義一個處理階乘的函式,接著寫一個空的main函式:

2、接著是階乘recv函式邏輯,該函式有一個形參n用來接收輸入的數。n的階乘是所有正整數的乘積,這裡的處理是sum不斷的用遞迴的方法乘以recv函式的輸入數,每次相乘n的值都減1;主函式中用一個cin函式接受使用者輸入的數,之後呼叫recv處理階乘,最後則是輸出結果:

3、程式編寫完成,最後編譯執行,輸入任意一個數,最終會列印出計算的結果。以上就是用c++求階乘的方法:

10樓:匿名使用者

#include

int result=1;

void fac(int n)

}void main()

{int a;

cout<<"請輸入所要求階乘的數:"<>a;

fac(a);

cout<以,我試過了

11樓:

//以下

copy

為求bain的階

du乘的

zhi程式

dao#include

using namespace std;

int main()

cout << result;

return 0;}

12樓:匿名使用者

建立復遞迴函式法求

制一個正整數的階乘,我喜歡這個方法,簡單明瞭#include

using namespace std;

int f (int x)

int main()

13樓:天空再亮

#include

#define max 1000

using namespace std;

int main()

while(h>0) //如果h不為0p=j-1; //將當前的位數賦給p}for(i=p;i>=2;i--)

cout<

}return 0;}

14樓:匿名使用者

#include

using namespace std;

int main()

15樓:龔煒林

請問樓主n有沒有啥範圍的?

c語言,求n階乘的**?

16樓:糖糖小小個

思路:所謂n的階乘就是從1到n的累積,所以可以通過一個for迴圈,從1到n依次求積即可。

參考**:

#include "stdio.h"

int main()

/*執行結果:(例如求5的階乘)

5120*/

17樓:匿名使用者

for (;;)

console.writeline("的階乘值為", num, jc);

console.writeline("你是否還需要使用此階乘計算器,1-是,2-否");

int numb = int.parse(console.readline());

if (numb == 1)

if (numb == 2)

}console.readkey();

18樓:

#include

int main()

printf("n的階乘是%d\n", sum);

return 0;}

19樓:ylf塵風

#include"stdio.h"

void main()

20樓:窮圖末錄

function jiecheng(int i)

21樓:提防

int res=1;

for(int i=1;i<=n;i++)res*=i;

return res;

c語言程式設計n的階乘,C語言程式設計 N的階乘

高寵 小霸王 include include stdio.h int input int min,int max void main j for i 2569 s i len if n m printf d n else printf a d d n,m if len 20 for i len 1 ...

程式設計求階乘的問題,vb程式設計求n的階乘

用!表示階乘,不重置的話,計算出來的是1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 所以是34863。因為不重置,每次都在前一項的基礎上乘了一個i!但是我們只需要在前一項的基礎上乘以i就行了,所以多乘了。重置的話,雖然是正確的,但是多此一舉嘛,搞什麼二重迴圈?覺得cpu太快了麼?已經算...

c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

問明 舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf...