日期:2014-05-20  浏览次数:20657 次

我编写计算阶层程序出错,望各位高手给我些指点!
麻烦大家帮看看这个算阶层的程序,我是初学者,刚刚看了一周,所以请大家不要笑话我
这个程序如果输入一百就出错,应该加些什么才不至于出错呀(希望加的语句,有注释)??(专业术语不会说,只好说大白话了。。)

import   java.util.Scanner;

public   class   a{
public   static   void   main(String[]   args){
Scanner   n   =   new   Scanner(System.in);
System.out.print( "请输入一个整数: ");
int   input   =   n.nextInt();
System.out.println( "您输入的数字是: "   +   input);


int   i=1;
int   sum=1;

do{sum   =   sum   *   i;
i++;
}while(i   <=   input);

System.out.printf( "%d   的阶层是   %d ",input,sum);
}
}

------解决方案--------------------
100!太大了,走出int型的表示范围了,所以会出错。
你可以换成double类型,或者一定要用整数的话,可以用java.math.BigInteger类。
------解决方案--------------------
太大了,溢出了吧
------解决方案--------------------
左上部分是包的名称,先找到java.math,点一下
然后在左下部分找到BigInteger类,点一下
右边就列出了这个类的方法,每个方法都有说明,稍微看一看就知道你需要哪些方法了。
------解决方案--------------------
搞定没?刚刚写了个,从前也没用过,呵呵,你看看吧

public static void main( String[] args ){
long max = 100;
BigInteger bigInt = BigInteger.valueOf(1);
for( int i = 1; i <= max; i++ ){
BigInteger bigIntTemp = BigInteger.valueOf(i);
bigInt = bigInt.multiply(bigIntTemp);
System.out.println(bigInt.toString());
}
------解决方案--------------------
我是说你去查看Java的API,编辑里是没有的。
Java的API是Sun提供的,是对于Java类库的说明文档,包括有哪些包,有哪些类,类里有哪些方法。Sun的网站有下载。
http://java.sun.com