2015-10-18 65 views
-3

你好我已經寫了下面的代碼來返回n的階乘,當值是10,但我不能讓我的程序工作。我以前從未使用Java,而且我是初學者。在java中使用遞歸返回10的階乘

public static int Factorial(n) 
{ 
    if (n == 0) { 
     return 1; 
    } else { 
     return(n * Factorial(n-1)); 
    } 
} 

public static int main(args) { 
    System.out.println(Factorial(10)); 
} 
+0

這是一個寫得不好的問題。請詳細說明*我無法讓我的程序工作*。它是否編譯?錯誤訊息?編譯但不按預期運行?什麼? – lurker

+0

http://stackoverflow.com/help/how-to-ask – RogueBaneling

+0

'公共靜態int Factorial(n)'不是有效的方法聲明。 'n'是int類型的,所以在參數列表中指定:'public static int Factorial(int n){'。你的'main'方法也是一樣,它必須以'String []數組'作爲參數。 – nbokmans

回答

2

您缺少一些類型定義和所需的主要方法。您的類應該是這樣的工作:

public class Main { 
    public static int Factorial(int n) { 
     if (n == 0) { 
      return 1; 
     } else { 
      return(n * Factorial(n-1)); 
     } 
    } 

    public static void main(String args[]) { 
     System.out.println(Factorial(10)); 
    } 
} 
0

你也可以試試這個:

int factorial(int n) 
{ 
return (n>=1 ? n * factorial(n-1) : 1); 
}