三步法定递归模型:
1.找重复 :即找到划分方法 或 递推公式 或 等价转换。
2.找变量:找变量定递归方法的参数
3.找边界:一个递归方法必备的结束条件
拿n的阶乘举例吧
1.找重复 :涉及数学层面肯定想到的就是公式, n! = n*(n-1)! , (n-1)! = (n-1)*(n-2)!...
2.找变量 :n,逐步随问题的划分而变小
3.找边界 :n! = n*(n-1)*(n-2)....*1 即 n == 1;
(代码实现)
import java.util.Scanner;
public class Main(){
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n+"的阶乘为:"+f(n));
}
static int f(int n){
if(n==1)
return 1;
return n * f(n-1);
}
}
网友评论