C++程式求階乘
非負整數n的階乘是所有小於或等於n的正整數的乘積。
例如:5的階乘是120。
5! = 5 * 4 * 3 * 2 *1 5! = 120
可以使用遞迴程式或非遞迴程式來求整數的階乘。下面分別給出這兩個程式的示例。
使用非遞迴程式求階乘
可以使用for迴圈來求一個數的階乘。這可以使用下面的程式演示:
示例
#include <iostream>
using namespace std;
int main() {
int n = 5, fact = 1, i;
for(i=1; i<=n; i++)
fact = fact * i;
cout<<"Factorial of "<<n<<" is "<<fact;
return 0;
}輸出
Factorial of 5 is 120
在上面的程式中,for迴圈從1執行到n。對於迴圈的每次迭代,fact都乘以i。fact的最終值是從1到n的所有數字的乘積。這可以使用下面的程式碼片段演示。
for(i=1; i<=n; i++) fact = fact * i;
使用遞迴程式求階乘
下面的程式演示了使用遞迴程式求一個數的階乘。
示例
#include <iostream>
using namespace std;
int fact(int n) {
if ((n==0)||(n==1))
return 1;
else
return n*fact(n-1);
}
int main() {
int n = 5;
cout<<"Factorial of "<<n<<" is "<<fact(n);
return 0;
}輸出
Factorial of 5 is 120
在上面的程式中,函式fact()是一個遞迴函式。main()函式使用需要求階乘的數字呼叫fact()。這由下面的程式碼片段演示。
cout<<"Factorial of "<<n<<" is "<<fact(n);
如果數字是0或1,則fact()返回1。如果數字是其他任何數字,則fact()遞迴地呼叫自身,值是n-1。
這可以使用下面的程式碼片段演示:
int fact(int n) {
if ((n==0)||(n==1))
return 1;
else
return n*fact(n-1);
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP