JAVA怎样理解递归
直接给你一段代码,自己理解吧:public class Main {public static void main(String args) { System.out.println("The factorial of 10 is " + factorial(10)); }// 计算阶乘的方法,典型的递归方法 public static long factorial(long n) {if (n \u0026gt;= 1) {//递归方法特点一:在方法中调用自己 return n * factorial(n - 1); } else {//递归方法特点二:有至少一个出口条件 return 1; } }}再来个程序员装逼常用的,斐波纳契数列,熟悉递归的一分钟写好:public class Main { public static void main(String args) { System.out.println("The factorial of 10 is " + factorial(10)); //print 20 fibonacci sequence for (int i = 0; i \u0026lt; 20; i++) { System.out.print(fibonacci(i)+" "); } }// 计算阶乘的方法,典型的递归方法 public static long factorial(long n) { if (n \u0026gt;= 1) { //递归方法特点一:在方法中调用自己 return n * factorial(n - 1); } else { //递归方法特点二:有至少一个出口条件 return 1; } }// 计算斐波那契数列的方法:斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) public static int fibonacci(int n){ switch(n){ //出口条件一 case 0: return 0; //出口条件二 case 1: return 1; //在方法中调用自己 default: return fibonacci(n-1)+fibonacci(n-2); } }}
■网友
可以这么理解:
我爷爷的爷爷的爷爷的爷爷的爷爷 曾经说过:“不懂就Google”。
在以上这句话中,有一个任务就是找到某一个人物来作为句子的主语,假如是CPU在执行上面的任务时,它的过程大概就是以下这样:private Person 临时爷爷;private Person 目标爷爷 = new Person("目标爷爷");pubblic void find爷爷() { while (临时爷爷 != 目标爷爷){ 临时爷爷 = get爷爷(临时爷爷); } // 终于找到了爷爷}public void get爷爷(Person 爷爷){ return 爷爷.爷爷();}
递归的核心思想就是,一个方法不停地调用自己直到某个条件达到了(“我爷爷的爷爷的爷爷的爷爷的爷爷” 找打了),而这个被递归的方法则是这个任务中的一个单元操作(获取“爷爷的爷爷”)。
现在假象一下你就是CPU:
我爷爷 -\u0026gt; 这个不对,接着调用找爷爷的方法;我爷爷 的爷爷 -\u0026gt; 这个不对,接着调用找爷爷的方法;我爷爷 的爷爷 的爷爷 -\u0026gt; 这个不对,接着调用找爷爷的方法;我爷爷 的爷爷 的爷爷 的爷爷 -\u0026gt; 这个不对,接着调用找爷爷的方法;我爷爷 的爷爷 的爷爷 的爷爷 -\u0026gt; 这个不对,接着调用找爷爷的方法;我爷爷 的爷爷 的爷爷 的爷爷 的爷爷 -\u0026gt; 找到啦!方法返回;临时爷爷 被赋值给正确的爷爷。
以上。
■网友
一、所谓递归
在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。
二、所谓递归三要素
1、明确递归终止条件;2、给出递归终止时的处理办法;3、提取重复的逻辑,缩小问题规模。//简单来给你讲一讲这两点,你应该能初步了解递归,首先给你一段代码public class Recursion(){\t public static void main(String args) {\t \tLong l =fibonacci(10);\t \tSystem.out.println(l);\t\t}\t public static Long fibonacci(int i){\t if(i==1 || i==2)\t return 1L;\t else\t return fibonacci(i-1)+fibonacci(i-2);\t }}
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
