请编写递归函数,求下面的简单幂级数。
P(x,n)=1+x+x2+x3+...+xn
函数原型
double P(double x, int n);
说明:x
为实数,n
为非负整数,函数值为多项式的值。
规定:当 n
为 0 时,函数值为 1。
要求:不要使用循环语句。
裁判程序
#include <stdio.h>
double P(double x, int n);
int main()
{
double x;
int n;
scanf("%lg%d", &x, &n);
printf("%.15g\n", P(x, n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
输入样例1
0.5 12
输出样例1
1.999755859375
输入样例2
-0.5 12
输出样例2
0.666748046875
测试样例
输入样例 | 输出样例 |
3.2 0 | 1 |
3.2 1 | 4.2 |
3.2 2 | 14.44 |
1.5 12 | 387.239013671875 |
-1.5 12 | 78.247802734375 |
double P(double x, int n)
{
if(n==0)
return 1;
else if(n==1)
return x+1;
else if(n==2)
return x*x+x+1;
else
return P(x,n-1)*x+1;//在纸上列出表达式,很容易得出!
}