编写函数 funP,完成数学函数P(n,x)函数的计算,定义如下:
递归是一个很常见的数学概念,很多数学函数本身就是递归的,例如著名的斐波那契数列,又称黄金分割数列:
0、1、1、2、3、5、8、13、21、34、……
斐波那契数列递推的方法定义:,,
同样可以用递归函数计算斐波那契数列第 n 项 (不考虑第0项) :
// 递归函数fib:计算斐波拉契数列第 n 项并返回
int fib(int n)
{
// 递归终止,直接返回
if(n == 1 || n == 2)
return 1;
// 两次递归调用,求和并返回
return fib(n - 1) + fib(n - 2);
}
预期输出
程序
#include <iostream>
using namespace std;
double funP(int n, double x)
{
if (n == 0)
return 1;
if (n == 1)
return x;
if (n > 1)
{
int a = 2 * n - 1;
int b = n - 1;
return ((a * funP(n - 1, x) - b * funP(n - 2, x)) / n);
}
else
return 0;
}
int main()
{
int n;
double x;
cin >> n >> x; // 输入n、x
cout << "P("<<n<<", "<<x<<")=" << funP(n,x) << endl;
return 0;
}