我正在编写一个具有两个函数的递归函数,一个用于将数字从 0 加到 10,另一个用于检索第一个函数返回值并减去它直到它达到 0。虽然,我的代码只将它们加起来 10电话。有人可以阐明一下。谢谢。
#include <iostream>
#include <fstream>
using namespace std;
static int recurse(int count)
{
cout << count << "\n";
if (count < 10)
{
recurse(count + 1);
}
int aRet = count;
return count;
}
static int minusRecusive(int minus)
{
recurse(1);
cout << "\n\t" << minus;
int a =0;
minus = recurse(a);
if (minus < 1)
{
recurse(minus - 1);
}
return minus;
}
int main()
{
minusRecusive(1);
cin.get();
}
最佳答案
您的递归函数实际上并不返回总和。如果您调用 recurse(0) 它将递归 10 倍,但您的返回值仍为 0。此外,您正在创建 aRet 但从未使用过。尝试以下...
if (count < 10) return count + recurse(count + 1);
return count;
您的 minusRecursive 函数应该类似。
关于c++ - 递归函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035657/