本文共 901 字,大约阅读时间需要 3 分钟。
这道看似简单的题,我第一遍的编译结果是:
问题出在数太大了,而我只把数据类型从int 改成了java……
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int n=sc.nextInt(); long result=1; for(int i=1;i<=n;i++) { result=result*i; } System.out.println(result); } }}
BigDecimal 或 BigInteger
修改之后,顺利通过了
(如果我在比赛前做了这道题,比赛的时候或许就能做出那道特大数的题了
……ε=(´ο`*)))唉)
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int n=sc.nextInt(); BigInteger result=BigInteger.valueOf(1); //第二种,参数可以是int、long int i=1; for(;i<=n;i++) { result=result.multiply(BigInteger.valueOf(i)); //乘法 } System.out.println(result); } }}
转载地址:http://xcssi.baihongyu.com/