递归妙用
来源:互联网 发布:网络推广工资一般多少 编辑:程序博客网 时间:2024/05/01 06:28
写一个函数 int p(int i, int N);
能够输出i到N再到i,即以参数1,7调用函数,输出结果为
1
2
3
4
5
6
7
6
5
4
3
2
1
要求只用一个语句完成,不允许用?:等n多操作符和关键字。只能用一个printf库函数
程序如下
int function(int start,int end)
{
return (printf("%d",start)) && (start<end && (function(start+1,end) || (!printf("%d",start))));
}
从题目的要求来看,明显就应该用递归调用。
因此此程序使用了递归的方式,当start<end的时候先依次打印[start~end)之间的数据,由于要递归地用function,所以会将本次调用的最后一个printf用到的start数值即这[start~end)的数据依次保存到堆栈中。当start==end的时候,返回的就是0值,然后执行||之后的表达式,这样就依次退栈,然后将start值以反序打印出来。
算法很巧妙的说。
- 递归妙用
- 递归思想的妙用
- 递归的妙用—遍历子控件
- 递归的妙用—遍历子控件
- 递归的妙用—遍历子控件
- DB2中with递归的妙用
- erlang throw跳出递归的妙用
- erlang throw跳出递归的妙用
- 二叉树三种遍历(递归的妙用)
- js中arguments.callee在递归函数中的妙用
- [黑马程序员]04[c语言]递归算法的妙用, 捕鱼量算法问题
- c#扩展方法奇思妙用变态篇一:由Fibonacci数列引出“委托扩展”及“递推递归委托”
- 视图妙用
- JavaScript妙用
- typedef 妙用
- 妙用HttpHandler
- Hander妙用
- #pragma 妙用
- fds
- ACCESS数据插入到SQL SERVER
- 条款24:若所有参数皆需类型转换,请为此采用non-member函数
- 判断result是否为空
- 开博宣言
- 递归妙用
- 链表的反转
- 如何发布VSTO应用程序?资料收集
- 关于asp.net导出Excel时关联迅雷下载
- 在哪里找到通信网络管理论文?
- 条款25:考虑写出一个不抛异常的swap函数
- 反病毒研究相关网络资源
- WSDL学习笔记(一)
- 介绍3款软件序列号搜索引擎