本題要求實現一個函數,計算下列簡單交錯冪級數的部分和:
f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn
函數接口定義:
double fn( double x, int n );
其中題目保證傳入的n
是正整數,並且輸入輸出都在雙精度范圍內。函數fn
應返回上述級數的部分和。建議嘗試用遞歸實現。
裁判測試程序樣例:
#include <stdio.h>
double fn( double x, int n );
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%.2f\n", fn(x,n));
return 0;
}
/* 你的代碼將被嵌在這里 */
輸入樣例:
0.5 12
輸出樣例:
0.33
fn(x,n)代表前n項交錯級數的和,可以知道fn(x,n + 1)和他關系,n+1項和無非是比n項和多了個(−1)nxn+1,我們可以看成fn(x,n) * (-x)變成−x2+x3−x4+⋯+(−1)n−1xn+(−1)nxn+1,再加上x即可,由此出來遞推關系fn(x,n)=x * (1 - fn(x,n-1))
代碼:
double fn( double x, int n ) { if(n==1)return x; else return x * (1 - fn(x,n-1)); }