我有一個非常艱難的任務,我覺得很難處理。給定總和的整數子陣列,使用遞歸C
我想寫一個遞歸函數(根本沒有循環),給定一個數組及其長度,將打印一對子數組,其中每一個的總和將是整個數組總和的一半。換句話說,數組將被分成兩組整數,以便它們的總和相等。
例如,給定的數組{1,2,2,0,5},該函數應該輸出{1,2,2} {0,5}
我必須這樣做遞歸,與一個只獲取數組本身及其大小的函數。我也只能使用一個額外的遞歸函數來解決這個問題。
任何想法或想法將不勝感激。
你好! 我們得到了在課堂上的代碼是這樣的
int SubsetSum(int arr[], int idx, int n, int S) {
if (S==0) return 1; //This is stopping condition #1.
if (S<0 || n==0) return 0; //This is stopping condition #2.
return SubsetSum(arr, idx+1, n-1, S-arr[idx]) || SubsetSum(arr, idx+1, n-1, S);
}
什麼是「||」運營商遞歸而言意味着什麼? 感謝ppl!
http://en.wikipedia.org/wiki/Partition_problem –