二、請使用 C,C++,C#,Java 或 Python 程式語言,迴圈及遞迴方式撰寫相關程式模組,可以求解如下的數列資料值。

詳解 (共 2 筆)
詳解
用遞迴C:
double seq(int n) {
if (n < 1)
return 0;
else if (n % 2 == 0)
return seq(n - 1) + ((double)(n - 1) / n);
else if (n % 2 == 1)
return seq(n - 1) - n;
}
詳解
這個數列看起來是交替增減,偶數時加上一個遞減的分數項,奇數時則直接減去該奇數。從題目可以看出,這是一個依賴於前一項結果的數列,也就是遞迴式的形式。為了求解,我們要根據初始條件 Seq(0)=0,並根據 n 的奇偶性不斷遞迴下去

奇數: i = 1, result = -1
偶數: i = 2, result = -0.5
奇數: i = 3, result = -3.5
偶數: i = 4, result = -2.75
奇數: i = 5, result = -7.75
Seq(5) 的值為: -7.75
偶數: i = 2, result = -0.5
奇數: i = 3, result = -3.5
偶數: i = 4, result = -2.75
奇數: i = 5, result = -7.75
Seq(5) 的值為: -7.75