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