c ++递归程序中的运行时错误

时间:2016-07-28 15:11:06

标签: c++ recursion runtime runtime-error

我尝试解决一个问题,你有一个网格h * w,多个标记2 ^ 0,2 ^ 1,...,2 ^ N你需要告诉可能的组合计数,但我我的代码有一个符文时间错误。 例如:

3

1

3

返回:5

他有1x3矩形和3个方形邮票。邮票的边是1,2和4.邮票的好集如下:(1,2),(1,2,4),(1,4),(2,4)和( 4)。

#include <iostream>
using namespace std;
#include<stdio.h>
#include <vector>
#include <math.h> 

auto puissance(double N){
    double i=0.0;
    vector<double>listofp;
    while(i<N){
        listofp.push_back(pow(2.0,i));
        i++;
    }
    return listofp;
}

void cover(int N,int result) {
    //maybe i will  need to add another for loop to test out the other combinations
    vector<double>listofp=puissance(N);
    //is there a recursive way to add this suggested loop
    if(result==0){cout<<"+1";}
    for(int i=0;i<listofp.size();i++){
        cover(N,result-listofp[i]);
    }
}

int main()
{
    double N=3.0;
    int w=1;
    int h=3;
    int result=w*h;
    cover(N,result);

    return 0;
}

0 个答案:

没有答案