递归与尾递归,傻傻地分不清楚
//递归,累计+1,非尾递归
public static int cap(int n) {
if (n == 1) {
return 1;
}
return cap((n - 1)) + 1;
}
//递归,累计+1,尾递归
public static int capTail(int n, int m) {
if (n == 1) {
return m;
}
m++;
return capTail((n - 1), m);
}
//阶乘,非尾递归
public static int factorial(int n) {
if (n == 1) {
return 1;
}
return n * factorial((n - 1));
}
//阶乘,尾递归
public static int factorialTail(int n, int m) {
if (n == 1) {
return n;
}
m *= n;
return factorialTail((n - 1), m);
}
缘于生活,而归于工作。本人所书,而意于分享。
如有转载,请注明出处!
--活出自己范儿

浙公网安备 33010602011771号