9.20

发布时间 2023-09-20 23:41:16作者: 酥饼馅红豆沙

学习递归

递归是一种在函数中调用自身的方法,每次递归调用之后,问题的规模越来越接近这个限制条件,直到满足限制条件才停止递归

求n的阶乘可以用循环和递归

import java.util.Scanner;
public class Main {
    public static int factorial(int x){
        if(x==1){
            return 1;
        }
        return x * factorial(x-1);
    }
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("输入n的值");
        int n = s.nextInt();
        System.out.println(n + "的阶乘为:" + factorial(n));
    }
}

可惜是效率低下,函数调用的时候,每次调用时要做地址保存,参数传递等。如果递归调用N次,就要分配N次局部变量,N次形参,N次调用函数地址,N次返回值,势必效率低下。