您正試圖創建一個名爲factorial
的方法您的main
方法。它必須在它旁邊,不在裏面。
可讀且始終格式化代碼有助於使問題清晰:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.getInt();
System.out.println(factorial(n));
int factorial(int a) { // <=== Problem
if (a == 0)
return 0;
else
return (a * factorial(a - 1));
}
}
}
相反:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.getInt();
System.out.println(factorial(n));
}
int factorial(int a) {
if (a == 0)
return 0;
else
return (a * factorial(a - 1));
}
}
以上仍然有問題(factorial
需求爲static
,或者您需要創建一個實例來調用它),但它現在是在正確的位置。
在System.out.println行後面缺少'}'。最後還有一個「太多」了。 –
你忘了用'}括號關閉你的'main()'方法。最有可能的是,你在main中粘貼了'factorial'。 –
是的,意識到了錯誤。我不知道另一個函數不能在main()中聲明。謝謝你的幫助 –