我在哪里可以找到一些C ++中递归的简单代码示例?

时间:2011-12-18 13:35:23

标签: c++ methods recursion

我完全是C ++的新手。我正在做一个练习,其中包括构建一个非常简单的C ++程序。

我的老师强调它必须使用函数和方法的递归。我想知道如何在C ++中的方法中使用递归。我正在寻找一些代码示例,但我没有找到任何东西。我深切关注的是方法在不知道其类/实例名称的情况下如何调用自身。

3 个答案:

答案 0 :(得分:5)

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)
}

答案 1 :(得分:3)

Wikipedia: Recursion

我猜你的作业是写Recursive Descent Parser。 C中的一个简单示例: uBASIC

答案 2 :(得分:1)

一个例子:

#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