使用数组的元素找到总和'k'

时间:2015-01-09 13:26:25

标签: c++

我是c ++的新手。我想找到一笔钱' k'在一组数字中。我正在使用递归来查找是否''可以使用任何nos。在数组中。我写了以下代码。

#include<iostream>
using namespace std;

bool isSum(int arr[],int low,int size, int k)
{
    if(k == 0)
        return true;

    if(size == 0)
        return false;


    #using recursion , one recursion including the present no. in the array, another excluding the present no.
    return (isSum(arr,low +1, size-1,k-arr[low]) || isSum(arr, low + 1, size -1 ,k));
}

int main()
{
    int arr[] = {261, 823, 126, 57, 826, 57, 47, 716, 146, 439, 15, 34, 238, 10, 690, 213, 292, 10, 16, 711};;
    bool a = isSum(arr,0,20, 512);
    if(a)
        cout<<"true"<<endl;
    else
        cout<<"false"<<endl;
    }

但是上面的代码给了我真实的而不是假的。问题是什么。提前谢谢。

1 个答案:

答案 0 :(得分:1)

return isSum &&中,您希望使用逻辑和运算符||,而不是逻辑或运算符return。对于单个元素,您还需要{{1}}。