心血来潮,想测试一下,java 1.4.2是否实现了尾递归优化。
public class test {
public static void main(String[] args) {
System.out.println("递归");
System.out.println(fac(5000));
System.out.println("尾递归(迭代)");
System.out.println(fac1("1", 2, 5000));
}
public static String fac(int n) {
if (n == 1) {
return "1";
} else {
return String.valueOf(n) + fac(n - 1);
}
}
public static String fac1(String r, int i, int n) {
if (i > n) {
return r;
} else {
return fac1(i + r, ++i, n);
}
}
}