递归关键问题(以递归循环打印1~9为例)
来源:互联网 发布:淘宝网店加盟哪家靠谱 编辑:程序博客网 时间:2024/06/16 22:55
递归的两个关键问题是:
1.出口问题,即什么时候结束;
2.逻辑相似性。相似性有时需要主动构造,不能相似的原因可能是缺少参数。
这与循环很相似:
for(int i=0;i<10;i++){ system.out.println(i);}循环中“i<10”是出口,即循环结束的条件;而“i++”则用于保证逻辑相似性,如果没有“i++”,则循环成了死循环,不停的打印0。
for(int i=0;i<10;){ system.out.println(i);}对于打印0~9,递归方法如下:如果方法体中“func(i-1)”变成“func(i)”,则情况类似于上面说的死循环。
public static void func(int i){ if(i>0) //出口问题 func(i-1); //逻辑相似性 system.out.println(i);}
另外,递归的思想类似于一个多层次的机器,要完成一个任务,当前层只完成一小部分,剩下的任务交给剩下的其他层,这时就要保证逻辑相似性(以便能把任务交给下一层)。
总体看就是每层只完成小部分任务,并把剩余任务交给下一层。
0 0
- 递归关键问题(以递归循环打印1~9为例)
- 递归转化为循环
- 递归:以俄罗斯跳棋为例
- 运用递归搞定单次循环打印菱形的问题
- 递归--循环日程表问题
- 面试题12:打印1到最大的n位数-大数问题-递归实现多层循环
- 递归问题——以全排列、青蛙过河问题为例
- 使用递归做到1个for循环打印菱形
- 解题:不用循环、递归,如何从 1 打印到 100?
- 递归打印字母塔问题
- 解题:不用循环、递归,如何从 1 打印到 100(转)
- 递归思想分析----以一个简单的例子为例
- 递归函数的调用过程,以汉诺塔为例
- 递归函数的使用-以C++语言为例
- 递归函数的使用-以C++语言为例(下)
- 循环和递归的问题
- Java 跳出递归循环问题
- 以二叉树的前序遍历为例,递归和非递归方式的实现
- softmax与cross-entropy loss
- dubbo的简单体验
- 【JavaScript】(3)基础语法---数组的定义、使用方式及其注意事项
- 读 zepto 源码之工具函数
- jsp语言基础5--数组
- 递归关键问题(以递归循环打印1~9为例)
- 网线接法
- LeetCode-227. Basic Calculator II (JAVA)实现计算器 II
- 模态视图的呈现方法及返回
- hdu-3669(斜率 dp)
- 数据结构与算法(八)希尔排序
- maven报错Multiple annotations found at this line
- 将html拷贝到项目中修改为jsp后页面出现乱码
- Mysql自定义函数