目录
- 第2章的目标
- 递归的学习方法
- 递归求n的阶乘
- 打印i-j
第2章的目标
递归的学习方法
递归求n的阶乘
import java.util.Scanner;
public class 求n的阶乘 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int n=in.nextInt();
System.out.println(f1(n));
}
/*
* f1(n):求n的阶乘-->f(n-1)求n-1的阶乘
* 找重复:n*(n-1)的阶乘,求n-1的阶乘是原问题的重复,(规模更小)--子问题
* 找变化:变化的量应该作为参数
* 找边界:出口
*/
static int f1(int n) {
if(n==1)//出口,到1时,反弹回去计算
return 1;
return n*f1(n-1);
}
}
打印i-j
自己做一部分,剩下的委托出去
自己打印i,i+1就委托出去
import java.util.Scanner;
public class 打印i到j {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int i=in.nextInt();
int j=in.nextInt();
f2(i,j);
}
/*
* 找重复:
* 找变化:变化的量应该作为参数
* 找边界:出口
*/
static void f2(int i,int j) {
if(i>j) {
return;//出口
}
System.out.println(i);
f2(i+1,j);
}
}
链接: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录.