递归函数c ++

时间:2012-01-27 15:24:59

标签: c++

我正在编写一个递归函数,它有两个函数,一个用于添加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();
}

1 个答案:

答案 0 :(得分:1)

您的递归函数实际上并不返回总和。如果你调用recurse(0)它会递归10x,但你的返回值仍然是0.此外,你正在创建aRet但它从未使用过。请尝试以下方法......

if (count < 10) return count + recurse(count + 1);
return count;

你的minusRecursive函数应该类似。