9.20
学习递归
递归是一种在函数中调用自身的方法,每次递归调用之后,问题的规模越来越接近这个限制条件,直到满足限制条件才停止递归
求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次返回值,势必效率低下。