在调用的构造函数中使用递归

时间:2019-04-24 05:09:17

标签: c++11 recursion constructor

不知道如何在调用的构造函数中使用递归。

recursion.cpp

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

#include "MinilabRecursion.h"

MinilabRecursion::puzzleRecurse(int n)
    {
        int recurse(n) // <--- Don't know what to do here
        {      //error: expected ',' or ';' before '{' token
            if( n == 0 )
            {
                return 1;
            }
            if( n >= 1 )
            {
                return recurse(n - 1) + 4 * n;
            }
        }
    }          //error: expected '}' at end of input

driver.cpp

#include <iostream>
#include <string>
using namespace std;

#include "MinilabRecursion.h"
{
        cout << "puzzleRecurse(1) returns: " << MinilabRecursion::puzzleRecurse(1) << endl;

        cout << "puzzleRecurse(7) returns: " << MinilabRecursion::puzzleRecurse(7) << endl;

        cin.get();
        return 0;
}

recursion.h

#ifndef MINILABRECURSION_H
#define MINILABRECURSION_H
#include <iostream>
#include <string>
using namespace std;

class MinilabRecursion
{
public:
    static int puzzleFormula(int n);
    static int puzzleLoop(int n);
    static int puzzleRecurse(int n);
};
#endif

recursion.cpp中的if语句应该给我想要的结果,但是我不知道如何在这种情况下使用递归。

1 个答案:

答案 0 :(得分:0)

我不确定您发布的代码是否有意义。似乎您想执行以下操作,但对某些C ++基础感到困惑:

int MinilabRecursion::puzzleRecurse(int n)
{
    if (n == 0) {
        return 1;
    }
    return puzzleRecurse(n - 1) + 4 * n;
}
相关问题