gpt4 book ai didi

c++ - 子集和实现

转载 作者:行者123 更新时间:2023-11-30 18:43:11 27 4
gpt4 key购买 nike

我正在实现子集和的算法:

SUBSET SUM(X[1 .. n], T ):
if T = 0
return T RUE
else if T < 0 or n = 0
return FALSE
else
return SUBSET SUM(X[2 .. n], T ) ∨ SUBSET SUM(X[2 .. n], T − X[1])

请帮我解决递归时如何传递简化数组 X[2...n] ?

这是我编写的代码,它会导致段错误:

#include <stdio.h>

int subsetsum(int a[], int sum, int size)
{
if(sum==0)
return 1;
else if (sum<0 || size <0)
return 0;
else
return (subsetsum(a+1 , sum, size-1) || subsetsum(a+1, sum - *a, size-1));
}
`

int main(int argc, char **argv)
{
int a[]={2,4,1,3,5},x;
x=subsetsum(a,6,5);
printf("%d",x);
return 0;
}

最佳答案

template<class It>
void recurse(It begin, It end)
{
... recurse(begin+1, end) ...
}

关于c++ - 子集和实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11244570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com