1. 程式人生 > >2406: C語言習題 求n階勒讓德多項式

2406: C語言習題 求n階勒讓德多項式

memory pid post 代碼 數據 ref pro 調用函數 end

2406: C語言習題 求n階勒讓德多項式

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 961 Solved: 570
[Submit][Status][Web Board]

Description

用遞歸方法求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位小數。

Input

n和x的值。

Output

pn(x)的值。

Sample Input

2 2

Sample Output

5.50

HINT

主函數已給定如下,提交時不需要包含下述主函數

/* 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<stdio.h>
float polya(int n,int x)
{
    float sum;
    if(n==0)
        sum=1;
    else if(n==1)
        sum=x;
    else if(n>1)
        sum=((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;
    return sum;
}
int main() 
{
    int x,n;
    scanf("%d%d",&n,&x);
    printf("%.2f\n",polya(n,x));
    return 0;
}
註意調用函數的數據類型,因為最後是保留兩位小數輸出的!

  

2406: C語言習題 求n階勒讓德多項式