C++程序求解数列1, 4, 15, 72, 420…的第N项
在这个问题中,我们给定一个整数N。我们的任务是创建一个程序来查找数列1, 4, 15, 72, 420…的第N项。
让我们举个例子来理解这个问题:
输入
N = 4
输出
72
解决方案方法
解决这个问题的一个简单方法是使用该数列第N项的公式。为此,我们需要观察该数列,然后概括出第N项。
该数列可以看作是阶乘和一些变量的乘积:
1, 4, 15, 72, 420… 1!*(X1), 2!*(X2), 3!*(X3), 4!*(X4), 5!*(X5)... 1*(1), 2*(2), 6*(5/2), 24*(3), 120*(7/2)...
这里,乘积数列是:
1, 2, 2.5, 3, 3.5… It is {(n+2)/2}.
所以第N项的公式是
T(N) = ( N! * (N + 2)/ 2 )
程序演示了我们解决方案的工作原理:
示例
#include <iostream> using namespace std; int calcFactorial(int N) { int factorial = 1; for (int i = 1; i <= N; i++) factorial = factorial * i; return factorial; } int calcNthTerm(int N) { return (calcFactorial(N) * (N + 2) / 2); } int main() { int N = 7; cout<<N<<"th term of the series is "<<calcNthTerm(N); return 0; }
输出
7th term of the series is 22680
广告