您正试图创建一个名为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()中声明。谢谢你的帮助 –