クラスには次のようなコードがあります。
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);
}
このコードは、配列が等しい合計 (配列/2 の合計) で 2 つの部分配列に分割できる場合、1 を返します。この関数を拡張して、数値を含む 2 つの配列を返すようにしたいと考えています。
入力の1,2,2,3,0
場合は次のように返されます: arr1: 2,2 arr2: 3,1
どうやってやるの?ループは使用できず、再帰関数のみを使用できます。