#include <iostream>
#include <cstdio>
using namespace std;
bool rec_subset(int arr[],int i, int s) { //递归方式
if (s == 0) return true; //出口1
else if (i == 0) return arr[0] == s; //出口2
else if (arr[i] > s) return rec_subset(arr,i - 1, s); //出口3
else
{
bool a = rec_subset(arr, i - 1, s - arr[i]);
bool b = rec_subset(arr, i - 1, s);
return a || b;
}
}
int main() {
int arr[] = { 3,34,4,12,5,2 }; //数组样例
if(rec_subset(arr, 5, 11)) cout << "ture" << endl; //以数字11为例
else
cout << "false" << endl;
return 0;
}
动态规划-判断某个数是否可以由数组中的数字组合相加而成
最新推荐文章于 2022-07-13 16:22:27 发布