java语言求n的阶乘

public class example2 {

static long calcFactorial(int n){
long factorial=1;
if(n<1||n>20){
System.out.println("输入错误!");
}
for(int i=n;i>=1;i--){
factorial*=i;
}
System.out.println("请输入不超过20的正整数n:");
for(int i=1;i<=n;i++){
System.out.printf("最后结果:%d",calcFactorial(n));
System.out.println();
return factorial;}
public static void main(String[] args){}
}
错误Syntax error, insert "}" to complete Block

楼主,系统提示你少括号,让你插入一个括号在结束块,说的很明白啊

你在最后加个括号就没错啦...

public class example2 {
    static long calcFactorial(int n){
        long factorial=1;
        if(n<1||n>20){
            System.out.println("输入错误!");
        }
        for(int i=n;i>=1;i--){
            factorial*=i;
        }
        System.out.println("请输入不超过20的正整数n:");
        for(int i=1;i<=n;i++){
            System.out.printf("最后结果:%d",calcFactorial(n));
            System.out.println();
            return factorial;
        } 
        public static void main(String[] args){}
    } //<-这个是 calcFactorial方法的结束括号,你类example2的结束括号呢?

另外你这个方法能否运行起来?主函数应该写在class内,而不是calcFactorial方法内

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-08
public class Jiecheng {
public static void main(String[] args) {
int res;
Scanner sc = new Scanner(System.in);
System.out.println("请输入N:");
int n = sc.nextInt();
res = jiecheng(n);
System.out.println(res);
}

static int jiecheng(int n) {
int i, j = 1;
for (i = 1; i <= n; i++) {
j = j * i;
}
return j;
}
}
第2个回答  2014-10-17
你代码太乱,
for(int i=1;i<=n;i++){
System.out.printf("最后结果:%d",calcFactorial(n));
System.out.println();
之后少了一个}追问

初学者,我不知道错误咋改

追答

我写个你了,你找到这段话,少了},就价格}

第3个回答  2014-10-17
return factorial;} 后面加个}追问

calcFactorial(int n)
这里又有错误了

追答

把return factorial;放到那两个}的后面

第4个回答  2018-02-27
static long calcFactorial(int n) {
    if (n == 1) {
        return 1;
    } else {
        return n* calcFactorial(n - 1);
    }
}

相似回答