c++ - 递归函数 C++

标签 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();
}

最佳答案

您的递归函数实际上并不返回总和。如果您调用 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/

相关文章:

c++ - 在QT中将16位QImage转换为8位无符号字符

c++ - C++中的非类类型错误

c++ - 值初始化 : MSVC vs clang

c++ - accept() block (有挂起的连接); Ctrl+C 解锁?

c++ - 为什么在 shell 中运行的可执行文件在崩溃时输出到 stdout 而不是 stderr?

c++ - c++中具有奇数和偶数指数的多项式函数

c++ - 想在另一个 CPP 中使用它们时对 C++ 类感到困惑。 [来自 C#]

c++ - 关于小数点的投币机

c++ - MPI 使用 MPI_Alltoallv 发送动态大小的数组

c++ - 有多少 "large"对象被带入缓存?