首页 > 代码库 > OJ刷题之《求n阶勒让德多项式》
OJ刷题之《求n阶勒让德多项式》
题目描述
用递归方法求n阶勒让德多项式的值,递归公式为
n=0 pn(x) =1
n=1 pn(x) =x
n>1 pn(x) =((2n-1)*x* pn-1(x) -(n-1)* pn-2(x))/n
结果保留2位小数。
输入
n和x的值。
输出
pn(x)的值。
样例输入
2 2
样例输出
5.50
提示
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */
int main()
{
int x,n;
scanf("%d%d",&n,&x);
printf("%.2f\n",polya(n,x));
return 0;
}
/* C++代码 */
int main()
{
int x,n;
cin>>n>>x;
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
cout<<polya(n,x)<<endl;
return 0;
}
代码如下:
#include <iostream> #include <iomanip> #include <cmath> using namespace std; float polya(int n,int x) { if (n==0) return 1; else if (n==1) return x; else return (((2*n-1)*x*polya((n-1),x)-(n-1)*polya((n-2),x))/n); } int main() { int x,n; cin>>n>>x; cout<<setiosflags(ios::fixed); cout<<setprecision(2); cout<<polya(n,x)<<endl; return 0; }
运行结果:
OJ刷题之《求n阶勒让德多项式》
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。