gpt4 book ai didi

c - C中的子集和递归

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:35 25 4
gpt4 key购买 nike

我写了这个函数,但它只适用于非负整数。

int is_sum(int x, int a[], int n)

{
if (x == 0)
return 1;
if (n==0)
return 0;

return is_sum(x-a[n-1], a, n-1) || is_sum(x, a, n-1);
}

我怎样才能让它对负整数起作用,我怎样才能跳进 2?

int is_sum(int x, int a[], int n)

{
if (x == 0)
return 1;
if (n==0)
return 0;

return is_sum(x-a[n-1], a, n-1) || is_sum(x, a, n-1);
}

最佳答案

试试这个解决方案:

int isSubsetSum(int a[], int n, int sum)
{
if (sum == 0)
return 1;
if (n <= 0)
return 0;

return isSubsetSum(a, n-1, sum) ||
isSubsetSum(a, n-2, sum-a[n-1]);
}

关于c - C中的子集和递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51076957/

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