计算函数P(p,x)

img

一个简单的实现:


#include <stdio.h>
double p(int n,double x);

int main(void){
    int repeat;  //定义存放做几轮运算的变量repeat 
    int n;       //定义p函数的变量n 
    double x;    //定义p函数的变量x 
    
    scanf("%d",&repeat);  //获取做几次轮运算的变量repeat的值 
    int i = 0;       //获取运算数据计运算计数器 
    int nArr[repeat];   //存放所有参与运算的变量n 
    double xArr[repeat];  //存放所有参与运算的变量x 
    double result[repeat];  //存放每轮运算的结果 
    while(i<repeat){    //如果没有超过指定次数的运算,就执行下面的操作:获取运算的数据,以及运算 
        scanf("%d %lf",&n,&x);  //获取每轮参与运算的参数n,x 
        nArr[i]=n;  //记录每轮参与运算的n 
        xArr[i]=x;  //记录参与每轮运算的x 
        result[i]=p(n,x);  //记录每轮运算的结果。 
        i++;   //运算轮数计数加一 
    }
    
    //打印每轮运算结果 
    for(i=0;i<repeat;i++){
        printf("p(%d,%.2lf)=%.2lf\n",nArr[i],xArr[i],result[i]);;
    }
    
    return 0;
    
}

//题目要求的运算函数 
double p(int n,double x){
    if(n==0){
        return 1;
    }else if(n==1){
        return x;
    }else if(n>1){
        return ( (2*n-1)*p(n-1,x)-(n-1)*p(n-2,x) )/n;        
    }
}

这个题目应该是考察循环的运用,以及scanf函数和数组的运用,以及函数的运用