#include <iostream>
using namespace std;
// 遞迴函式,計算陣列中所有奇數元素的總和
int OddSUM(int a[], int n) {
// 遞迴的基本情況
if (n <= 0) {
return 0;
}
// 檢查當前元素是否為奇數,如果是,則加到總和中
if (a[n - 1] % 2 != 0) {
return a[n - 1] + OddSUM(a, n - 1);
} else {
return OddSUM(a, n - 1);
}
}
int main() {
int a[3] = {3, 4, 7};
int k = OddSUM(a, 3);
cout << "Sum of odd elements in the array: " << k << endl; // 應該輸出 10
return 0;
}
這個函式首先檢查遞迴是否應該結束(即n是否小於等於0)。如果不是,函式檢查陣列中的當前元素(a[n - 1])是否為奇數。如果是奇數,函式將其加到總和中並遞迴調用自己處理剩餘的元素;如果不是奇數,則函式僅遞迴調用自己,不改變總和。
這種方法將整個陣列的遍歷分解為多個較小的步驟,每次調用僅處理陣列中的一個元素,這是遞迴函式的典型特徵。