包含一个递归调用的递归。(自调用的格式)
2016-01-14 20:26
316 查看
递归函数如果调用了自己,那么被调用的函数也会调用自己。格式一般为
void 递归函数(参数1)
{
语句1;
if(判断)
递归函数(参数2);
语句2;
}
只要if判断是true,那么每次递归函数都调用语句1,然后调用递归函数(参数2),不调用语句2.
但当前的循环被结束时,即是if为false时,那么开始调用语句2,然后翻回上一个调用参数2,构成返回循环。如此两次调用构成对称参数。如下面程序对应。
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n - 1);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(6);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n -2);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
/*if (n > 0)
countdown(n - 1);
cout << n << " : Kaboom!\n";
*/
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(6);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n -2);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n - 1);
//cout << n << " : Kaboom!\n";
}
void 递归函数(参数1)
{
语句1;
if(判断)
递归函数(参数2);
语句2;
}
只要if判断是true,那么每次递归函数都调用语句1,然后调用递归函数(参数2),不调用语句2.
但当前的循环被结束时,即是if为false时,那么开始调用语句2,然后翻回上一个调用参数2,构成返回循环。如此两次调用构成对称参数。如下面程序对应。
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n - 1);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(6);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n -2);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
/*if (n > 0)
countdown(n - 1);
cout << n << " : Kaboom!\n";
*/
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(6);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n -2);
cout << n << " : Kaboom!\n";
}
#include<iostream>
void countdown(int n);
int main()
{
countdown(4);
return 0;
}
void countdown(int n)
{
using namespace std;
cout << " Countdown down...." << n << endl;
if (n > 0)
countdown(n - 1);
//cout << n << " : Kaboom!\n";
}
相关文章推荐
- IOS-事件处理
- Handler的基本用法
- 最近5年133个Java面试问题列表
- Tomcat域名或IP地址访问方式配置方法
- 软件开发和写小说一样,最重要的是构思
- 《java从入门到精通》-笔记
- IT人创业之融资方式 - 创业与投资系列文章
- windows DLL动态连接库文件的实现和应用
- 安卓程序运行中突然崩溃的时候打印日志到本地
- What happens when you run a container?
- python学习二(Django+eclipse完成增删改查)
- hdoj 4826 Labyrinth 【dp】
- iOS应用内购买之应用下载
- 观察者模式
- PPAPI插件与浏览器的通信
- hdoj 4825 Xor Sum 【字典树】
- hdoj 4824 Disk Schedule 【TSP】
- sudo 在普通用户下使用出错
- jdk配置正确但是tomcat服务器启动时一闪而过
- 从Java回调机制分析Android动态加载布局过程中出现的IllgalStateException