C++ 算法问题 根据输入 计算一个数组中N个数相加的所有组合

1个回答

  • 到底是求组合数目? 还是所有组合?

    迭代啊、

    int a[20];

    int n;

    int cnt = 0;

    int b[20];

    void func( int idx , int depth )

    {

    if( depth == n ) {

    handle(b) // b is a solution

    cnt++;

    return ;

    }

    if ( idx < 20 ){

    func ( idx+1 , depth ) ; // ignore a[idx]

    b[depth] = a[idx];

    func ( idx+1 , depth+1 ); // choose a[idx]

    }

    }