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
廣告