C++程式:求解數列 1, 3, 12, 60, 360... 的第 N 項


在這個問題中,我們給定一個數字 N。我們的任務是編寫一個 C++ 程式來求解數列 1, 3, 12, 60, 360... 的第 N 項。

給定數列

1, 3, 12, 60, 360, 2520 … N 項

讓我們來看一個例子來理解這個問題:

輸入 − N = 6

輸出 − 2520

解決方案

這個數列的通項公式有點棘手。數列值的增長非常大,因此可能有幾種可能性,例如階乘或指數函式。首先考慮階乘,觀察可以發現增長是階乘值的一半。而且,2 的階乘是數列的第一項。因此,通項公式為:

TN = ((N+1)!)/ 2

程式演示了我們解決方案的工作原理:

#include <iostream>
using namespace std;
int calcFact(int n){
if(n == 1){
return 1;
}
return (n*calcFact(n-1));
}
int findNTerm(int N) {
int nthTerm = ( (calcFact(N+1)) /2 );
return nthTerm;
}
int main()
{
int N = 8;
cout<<N<<"th term of the series is "<<findNTerm(N);
return 0;
}

輸出

8th term of the series is 181440

更新於: 2020年10月3日

瀏覽量:121

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告