一,递归
1,什么是递归?
解决具有既定规律的问题时,在方法其内部再次调用自身,一种编程方式
2,何时使用递归
①当需要解决问题可以拆分成若干的小问题,大小问题解决方式相同,方法中调用 自己
②使用循环解决的问题都可以使用递归来解决
③设置好有效出口 可以让调用链上的每个方法都可以正确的返回,避免无穷递归
案例1:
//求某个数的阶乘
package com.qfedu;
public class Mytext2 {
public static void main(String[] args) {
System.out.println(jc(10));
}
//求某个数的阶乘
public static int jc(int num){
if(num==1){
return 1;
}
return num*jc(num-1);
}
}
案例2:求斐波那契数列第n项
package com.qfedu;
public class Mytext2 {
public static void main(String[] args) {
System.out.println(fb(5));
}
public static int fb(int num){
if (num==1 || num==2){
return 1;
}
return fb(num-1)+fb(num-2);
}
}
案例3:输出一个数,打印组成这个的数字
package com.qfedu;
public class Mytext2 {
public static void main(String[] args) {
printNum(1989);
}
public static void printNum(int num){
if (num==0){
return;
}
System.out.println(num%10);
printNum(num/10);
}
}