public class Recursion
{
public static int factorial(int n)
{
return (n*factorial(n-1));
}
public static void main(String[] args)
{
System.out.println(factorial(5));
}
}
各位师兄:最近在看数据结构 上面的这递归的代码怎么不行啊;能通过编译,但不能得到结果!
一运行就出现
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)这是怎么回事呢?
{
public static int factorial(int n)
{
return (n*factorial(n-1));
}
public static void main(String[] args)
{
System.out.println(factorial(5));
}
}
各位师兄:最近在看数据结构 上面的这递归的代码怎么不行啊;能通过编译,但不能得到结果!
一运行就出现
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)
at Recursion.factorial(TestDI.java:5)这是怎么回事呢?
你没有递归结束的条件啊0! = 1哦。所以代码应该是这样的。
public static int factorial(int n)
{
if (n == 0) return 1;
return (n * factorial(n - 1));
}