6-7 遞歸求簡單交錯冪級數的部分和 (15分)

6-7 (多方案解決)遞歸求簡單交錯冪級數的部分和 (15分)

本題要求實現一個函數,計算下列簡單交錯冪級數的部分和:
這是公式呀​​

函數接口定義:

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

以下是代碼部分,採用了多種方法:

double pow(double x,int n){//乘階運算
	if(n==0)return 1; 
	return x*pow(x,--n);
}
/*double pow(double x,int n){//此方法亦可
	int i; 
	double t=x;//必須聲明double t;
	for(i=1;i<n;i++){
		x*=t;//之所以是(*=t)而不是(*=x)因爲x會變,倍數指數級增長(X不再是我們想要的那個原始的x)}
        return x;
}*/
double fn( double x, int n ){
	if(n==1)return x;
	int flag = 1;
	if(n%2==0)flag =-1;
	return flag*pow(x,n--) + fn(x,n);//在n--處,n已經減一	
} 
/*	double fn( double x, int n ){
    if(n==1)return x;//相同效果
	return pow(-1,n-1)*pow(x,n--) + fn(x,n);
    }*/


發佈了24 篇原創文章 · 獲贊 7 · 訪問量 6836
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章