Где я могу найти несколько простых примеров кода рекурсии в C ++? - PullRequest
0 голосов
/ 18 декабря 2011

Я совершенно новичок в C ++.Я занимаюсь практикой, которая состоит в создании очень простой программы на C ++.

Мой учитель подчеркивает, что он должен использовать рекурсию с функциями и методами.Мне интересно, как использовать рекурсию внутри метода в C ++.Я искал несколько примеров кода, но ничего не нашел.Я глубоко обеспокоен тем, как метод вызывает себя, не зная имени своего класса / экземпляра.

Ответы [ 3 ]

5 голосов
/ 18 декабря 2011
class Foo
{
public:
    Foo(int offset) : offset(offset) {}

    int bar(int x)
    {
        if (x == 0)
        {
            return offset;  // Base-case
        }
        return x + bar(x-1);  // Recursion
    }

private:
    int offset;
};


int main()
{
    Foo foo(7);
    std::cout << foo.bar(5) << "\n";  Prints "22" (5+4+3+2+1+7)
}
3 голосов
/ 18 декабря 2011

Википедия: рекурсия

Я думаю, ваша домашняя работа - написать парсер рекурсивного спуска Простой пример в C: uBASIC

1 голос
/ 18 декабря 2011

Пример:

#include <iostream>
  using namespace std;

  int factorial(int n)    // 1, 1, 2, 6, 24, 120, 720, ...  
  {
    if (n == 0) return 1;
    return n * factorial(n-1);
  }

  main()
  {
    int n = 7;

    cout << "Enter a non-negative integer: ";
    cin >> n;
    cout << "The Factorial of " << n << " is " << factorial(n) << endl;  

    return 0;
  }

Вы можете найти больше примеров здесь: http://www.cstutoringcenter.com/tutorials/cpp/cpp6.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...