Использование рекурсии внутри вызываемого конструктора - PullRequest
0 голосов
/ 24 апреля 2019

Не знаю, с чего начать, как использовать рекурсию в вызываемом конструкторе.

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

Операторы if в recursion.cpp должны дать мне желаемый результат, но я не знаю, как использовать рекурсию в этом контексте.

1 Ответ

0 голосов
/ 24 апреля 2019

Я не уверен, что могу понять смысл кода, который вы разместили.Кажется, вы хотите сделать следующее, но не понимаете некоторых основ C ++:

int MinilabRecursion::puzzleRecurse(int n)
{
    if (n == 0) {
        return 1;
    }
    return puzzleRecurse(n - 1) + 4 * n;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...