我完全是C ++的新手。我正在做一个练习,其中包括构建一个非常简单的C ++程序。
我的老师强调它必须使用函数和方法的递归。我想知道如何在C ++中的方法中使用递归。我正在寻找一些代码示例,但我没有找到任何东西。我深切关注的是方法在不知道其类/实例名称的情况下如何调用自身。
答案 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)
我猜你的作业是写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