HDU1042 N! 大数阶乘 Java

来源:互联网 发布:c语言单竖线 编辑:程序博客网 时间:2024/05/17 18:27

题目链接:HDU1042

用Java写方便,直接算或者打表都行,速度都差不多


Javacode:

/* * 2017年9月20日19:27:24 * HDU1042 大数阶乘 * 用缓冲流效率基本没变 * AC * */import java.util.*;import java.io.*;import java.math.*;public class Main {public static void main(String []args){//Scanner cin=new Scanner(new BufferedInputStream(System.in));//PrintWriter cout=new PrintWriter(System.out);Scanner cin=new Scanner(System.in);int n;while(cin.hasNext()){n=cin.nextInt();BigInteger ans=BigInteger.ONE;for(int i=1;i<=n;i++){ans=ans.multiply(BigInteger.valueOf(i));}System.out.println(ans);}}}


打表法:代码参考http://blog.csdn.net/piaocoder/article/details/47071935


import java.math.BigInteger;  import java.util.Scanner;    public class Main {      public static void main(String[] args) {          Scanner sca = new Scanner(System.in);            BigInteger a[] = new BigInteger[10005];          a[0] = BigInteger.ONE;          for(int i = 1; i <= 10000; i++)              a[i] = a[i - 1].multiply(BigInteger.valueOf(i));          int n;          while(sca.hasNextInt()){              n = sca.nextInt();              System.out.println(a[n]);          }      }  }