c++递归函数
C++ Recursive functions
我正在学习c++,当函数被自己调用时,我有递归工作的麻烦。
#include <iostream>
using namespace std;
int countdown(int y) {
if (y==1) {
return 1 && cout << y << endl;
}
else {
return countdown(y-1);
}
}
int main () {
cout << "Countdown from ten: " << endl;
cout << countdown(10) << endl;
}
当然,还有其他方法可以实现这一点,但实际上我创建这个例子是为了验证我自己对如何递归调用函数的理解。
在示例中,我添加了&& cout << y
以验证y
是否作为1
传递给函数,无论我将函数称为countdown(10)
,情况总是如此。
谁能告诉我,如果我错过了一些明显的东西,请?
你的' count <<只有当Y被测试为1时,Y才会执行。
这个版本是我认为你想要的:
#include <iostream>
using namespace std;
int countdown(int y)
{
cout << y << endl;
if (y==1)
{
return 1;
}
else
{
return countdown(y-1);
}
}
int main()
{
cout << "Countdown from ten: " << endl;
cout << countdown(10) << endl;
}
您的调用堆栈看起来像这样:
main
countdown(10)
countdown(9)
countdown(8)
countdown(7)
countdown(6)
countdown(5)
countdown(4)
countdown(3)
countdown(2)
countdown(1)
std::cout << 1 << std::endl;
如果你想看到整个倒计时,把输出命令移到If条件前面。
而且,您编写输出的风格非常独特。注意,它之所以有效,是因为1 %&& cout
可以将cout
转换为bool
,而bool
可以转换为int
。请不要写这样的代码
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何在Elixir中调用递归函数并行
- 递归函数有效,但无法记忆
- 为什么我的递归函数按降序打印,然后按升序打印?
- 为什么递归函数的最终输出是 5?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 如何将记忆应用于此递归函数?
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 无穷大而循环时具有递归函数
- 即使没有调用这个递归函数,它是如何工作的?
- 如何使此递归函数从给定的起始位置返回最小的整数?
- 此递归函数的每次迭代的值存储在哪里?
- 可以清除递归函数中的变量吗?
- 如何在递归函数调用中返回当前函数值
- 递归函数 c++ 的复杂性
- 这个递归函数有什么作用?运行时的复杂性是多少?
- 任何人都可以查明我的递归函数中的错误吗?
- 递归函数的返回类型推导
- 递归函数调用在后台工作
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数