用java递归算法求一个数字的阶乘
我们可以用for循环从1到n直接计算一个数字n的阶乘,可是有什么简单一点的方法呢?那小编可就要说到递归算法这个概念了。
操作方法
- 01
什么是递归算法呢? 它是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).
- 02
递归的特点: (1) 递归就是在过程或函数里调用自身。 (2) 调用函数本身时必须有一个明确结束条件。
- 03
下面我们举一个例子来说明一下: import java.util.Scanner; public class Test { @SuppressWarnings("resource") public static void main(String[] args) { // 从控制台输入一个整数 Scanner in = new Scanner(System.in); int b = in.nextInt(); // 声明一个Test对象,调用cal方法获得结果 Test test = new Test(); long a = test.cal(b); System.out.println(a); } // 通过递归掉调用最终返回结果 public long cal(int number) { // 如果数字为1,则直接返回 if (number == 1) { return 1; } else {// 否则递归求值 return number * cal(number - 1); } } }
- 04
我们采用自顶向下的递归算法来求一个数字的阶乘。其运行结果如下: 当我们输入为10时,我们可以用计算器来计算一下,看我们程序写对了没。 结果为3628800。
- 05
如果觉得小编讲得还不错,那给小编点个赞吧!谢谢!