题目编号 |
13 |
时间限制 |
1000 毫秒 |
内存限制 |
32768 K字节 |
问题描述
输入n和x求勒让德多项式的值,公式为:
p(x, n) = 1 , 当n = 0时
= x , 当n = 1时
= (2n-1)xp(x, n-1)/n - (n-1)p(x, n-2)/n , 当n > 1时
输入
输入一个整数n和一个浮点数x
输出
输出勒让德多项式的值,保留2位小数
输入样例
4 2.0
输出样例
55.38
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
double operate(int n,float x){
double num;
if(n == 0)
num = 1;
if(n == 1)
num = x;
if(n > 1)
num = ((2*n-1)* x * operate(n-1,x)/n-(n-1) * operate(n-2,x)/n);
return num;
}
int main(int argc, char *argv[])
{
int n;
double x;
cin >> n >> x;
cout << fixed << setprecision(2) << operate(n,x) << endl;
system("PAUSE");
return EXIT_SUCCESS;
}