因子方法 - java递归中的逻辑错误

时间:2015-05-22 11:10:46

标签: java algorithm recursion

public static void main(String[] args)
    {
         factorial(5);      
    }

    public static void factorial(int n)
    {
        int fact=n;
        if(n>0)
        {

        fact =n*n-1;
        n=n-2;
        factorial(n);
        System.out.println("Factorial is: "+fact);      
        }
    }

我有以下内容: 因子是:0 因子是:8 因子是:24 但是5的阶乘应该是120 我有以下问题:

  1. 递归如何在这里工作
  2. 如何解决逻辑问题

2 个答案:

答案 0 :(得分:0)

你可以在网上找到几个答案, 你的答案是错的。我确实存在逻辑错误= n * n-1;

int fact(int n)
{
    int result;

   if(n==1)
     return 1;

   result = fact(n-1) * n;
   return result;
}

答案 1 :(得分:0)

 RewriteCond %{REQUEST_URI} !^/blog/?$
 RewriteRule ^((.*)[^/])$ $1/ [C]
 RewriteRule ^(.*)/blog/?(.*)$   /blog/$1/$2 [R=301,L]