我正在编写一个递归函数,它有两个函数,一个用于添加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();
}
答案 0 :(得分:1)
您的递归函数实际上并不返回总和。如果你调用recurse(0)它会递归10x,但你的返回值仍然是0.此外,你正在创建aRet但它从未使用过。请尝试以下方法......
if (count < 10) return count + recurse(count + 1);
return count;
你的minusRecursive函数应该类似。