计算数字阶乘几种方法

mac2024-05-30  35

方法一:迭代法

public static int iteration (int n) { int ret = 1; for (int i=1;i <= n;i++){ ret *= i; } return ret; }

方法二:递归法

首递法 public static int headRecursion (int n) { return 1==n?1:n*headRecursion(n-1); } 尾递法 public static int tailRecursion (int n) { return factorialHelper(1,n); } private static int factorialHelper (int acc, int n) { return 1==n?acc:factorialHelper(acc*n,n-1); }

方法三:函数流

public static int stream (int n) { return IntStream.rangeClosed(1,n).reduce(1,(a,b)->a*b); }
最新回复(0)