C++解决n连环问题(递归)

要求与规则

C++解决n连环问题(递归)_第1张图片

打印出所有步骤的算法

int16_t Baguenaudier(int16_t *memory, int16_t n) {
    int16_t move=0;
    Remove(memory, n,move);
    return move;//move is the number of steps
}

void Remove(int16_t *memory, int16_t n, int16_t &move) {
    if (!n) 
        return;
    else if(n==1){
        if(!move)
            memory[move] =1;
        else
            memory[move]=memory[move-1]+1;
        move++;
        return;
    }
    Remove(memory, n - 2,move);
    int16_t temp=1,i=0;
    for(i=1;i

仅求解下n连环的最少步骤数的算法

int fun(int n){
    if(n==0)
        return 0;
    else if(n==1)
        return 1;
    else
        return 2*fun(n-2)+fun(n-1)+1;
}

主函数

int main(){
    int n;
    cin>>n;
    cout<<"取下"<(memory[j]) << endl;
}

你可能感兴趣的:(C/C++,c++,算法,开发语言)