java小问题,计算n!的程序问题:为什么我的程序从0!到20!计算的和计算器一样,而从21!开始计算结果是负数了?

问题描述:

java小问题,计算n!的程序问题:为什么我的程序从0!到20!计算的和计算器一样,而从21!开始计算结果是负数了?


import java.util.*;
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long n;
System.out.print("请输入一个正整数:");
n = scan.nextInt();
if(n==0){
System.out.println("0!=1");
}else if(n>0){
long m=n;
for(long i=1;i
1个回答 分类:综合 2014-11-28

问题解答:

我来补答
越界了,你看下int类型的数值范围…
再问: 确实是越界了,不过上面已经定义为long类型了,有没有办法进一步扩大数值范围呢?
再答: 你可以去查查大整数类,可以自己设计或者用别人的类… API中有这个BigInteger类,处理大整数的…
 
 
展开全文阅读
剩余:2000
上一页:画钩的
下一页:速率