如何反转递归调用
How to reverse a recursive call?
我的任务是编写一个产生以下输出的函数:
This was written by call number 1.
This was written by call number 2.
This was written by call number 3.
This was written by call number 4.
This was written by call number 5.
This was ALSO written by call number 5.
This was ALSO written by call number 4.
This was ALSO written by call number 3.
This was ALSO written by call number 2.
This was ALSO written by call number 1.
这并不局限于数字5,程序可以接受用户的任何输入,并输出他们的数字。
到目前为止我写的是:
void function_call(int number);
int main(){
int userInput;
cout<<"Please enter a digit: ";
cin>>userInput;
function_call(userInput);
}
void function_call(int number){
if (number == 1){
cout<<"This was written by call number "<<number<<"."<<endl;
}
else{
function_call(number - 1);
cout<<"This was written by call number "<<number<<"."<<endl;
}
}
我当前的代码输出第一部分,但不输出数字减少的第二部分。如何使输出的第二部分显示出来?
在调用function_call(1,userInput)
:
void function_call(int curr,int last)
{
if (curr <= last)
{
cout<<"This was written by call number "<<curr<<"."<<endl;
function_call(curr+1,last);
cout<<"This was ALSO written by call number "<<curr<<"."<<endl;
}
}
相关文章:
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 使用静态变量的递归调用的不同输出
- 即使没有调用这个递归函数,它是如何工作的?
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- 复制构造函数中的递归调用
- 为什么编译器将其解析为函数指针而不是递归调用?
- 如何在 c++ 的类中递归调用函数方法?
- 如何在递归函数调用中返回当前函数值
- 了解使用堆栈实现队列的递归调用机制
- 递归函数调用在后台工作
- 如何通过函数指针递归调用类成员函数?
- 条件加倍时的递归调用
- 对可变参数函数的递归调用的链接器错误
- 在循环中调用递归函数
- ambigus调用递归sudoku_backtracker函数
- 如何在C++中调用递归链表遍历函数
- 为什么在NULL检查之后要在指针上调用递归函数?
- 通过结构调用递归函数
- 如果在指令之前调用递归函数怎么办