Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java递归:当n>;12_Java_Recursion_Factorial - Fatal编程技术网

java递归:当n>;12

java递归:当n>;12,java,recursion,factorial,Java,Recursion,Factorial,这是因为13!大于最大的32位整数。在java中,int总是32位。如何“出错”?你需要了解一下。特别是,您需要告诉我们您得到的错误是什么,包括输入、预期输出、实际输出、任何异常的完整堆栈跟踪等等,因为12!太大了,无法放入整数中。一个好的经验法则是,你在一个问题上投入的精力越多,答案就越好。@Tunaki-12!是479001600整数。最大值为2147483647,因此有足够的空间容纳12!。是13!(6227020800)太大了。好主意,抱歉。我的问题是当我输入12作为x时,结果是13!是

这是因为13!大于最大的32位整数。在java中,int总是32位。

如何“出错”?你需要了解一下。特别是,您需要告诉我们您得到的错误是什么,包括输入、预期输出、实际输出、任何异常的完整堆栈跟踪等等,因为12!太大了,无法放入整数中。一个好的经验法则是,你在一个问题上投入的精力越多,答案就越好。@Tunaki-12!是479001600<代码>整数。最大值为2147483647,因此有足够的空间容纳12!。是13!(6227020800)太大了。好主意,抱歉。我的问题是当我输入12作为x时,结果是13!是1932053504。但是13!应该是6227020800。那么这个代码有什么问题?
import java.util.Scanner;



public class factorial {
    public static void main(String [] args){
        Scanner in = new Scanner(System.in);
        int x = 0, y;
        System.out.println("enter factorial number");
        if(in.hasNextInt()){
            x = in.nextInt();// check if the scanner's next token is an int
        }//end if
        y = factorial(x);
        System.out.println("factorials is "+y);
    }//end main

    private static int factorial(int n) {
        // TODO Auto-generated method stub
        if(n==0||n==1){
            return 1;
        }
        else 
        return n*factorial(n-1);//recursive call
    }//end factorial


}//end class