java处理大整数例

2014年09月05日 技术文章 1771 views
  1. /*
  2. 给两个大整数A和B,计算并输出A + B = ?
  3. */
  4. import java.io.*;
  5. import java.util.*;
  6. import java.math.*;
  7. public class hdu1002
  8. {
  9.         public static void main(String args[]){
  10.                 Scanner cin = new Scanner(System.in);
  11.                 int T = cin.nextInt();
  12.                 for(int i=0;i<T;i++){
  13.                         BigInteger a = cin.nextBigInteger();
  14.                         BigInteger b = cin.nextBigInteger();
  15.                         System.out.println("Case "+(i+1)+":");
  16.                         System.out.println(a+" "+"+"+" "+b+" "+"="+" "+(a.add(b)));
  17.                         if(i!=T-1) System.out.println();
  18.                 }
  19.         }
  20. }

  1. /*
  2. 给一个整数0<N<10000,计算N!;
  3. */
  4. import java.io.*;
  5. import java.util.*;
  6. import java.math.*;
  7. public class hdu1042
  8. {
  9.         public static void main(String[] args){
  10.                 Scanner cin = new Scanner(System.in);
  11.                 while(cin.hasNextInt()){
  12.                         int N = cin.nextInt();
  13.                         BigInteger ans = BigInteger.ONE;
  14.                         for(int i=1;i<=N;i++){
  15.                                 ans = ans.multiply(BigInteger.valueOf(i));
  16.                         }
  17.                         System.out.println(ans);
  18.                 }
  19.         }
  20. }

  1. /*
  2. 首先输入一个n,表示n组测试实例;
  3. 每个测试实例有多多行,每行一个大整数,当输入0标志一个实例的结束;
  4. 对于每个实例输出所有大整数的和,每两个实例的结果用一个空行隔开;
  5. */
  6. import java.io.*;
  7. import java.util.*;
  8. import java.math.*;
  9. public class hdu1047
  10. {
  11.         public static void main(String[] args){
  12.                 Scanner cin = new Scanner(System.in);
  13.                 cin.hasNextInt();
  14.                 int n = cin.nextInt();
  15.                 for(int i=0;i<n;i++){
  16.                         if(i!=0) System.out.println();
  17.                         BigInteger ans = BigInteger.ZERO;
  18.                         while(cin.hasNextBigInteger()){
  19.                                 BigInteger temp = cin.nextBigInteger();
  20.                                 if(temp.intValue()==0)break;
  21.                                 ans = ans.add(temp);
  22.                         }
  23.                         System.out.println(ans);
  24.                 }
  25.         }
  26. }

  1. /*
  2. Fibonacci numbers: f1=1; f2=2; fn=fn-1+fn-2;
  3. 给两个数大整数a和b(a<=b<=10^100)。a=b=0表示输入结束;
  4. 对每一个a和b,统计并输出a,b之间的斐波纳契数的个数;
  5. */
  6. import java.io.*;
  7. import java.util.*;
  8. import java.math.*;
  9. public class hdu1316
  10. {
  11.         public static void main(String[] args){
  12.                 int M = 505;
  13.                 BigInteger array[] = new BigInteger[M];
  14.                 array[1] = BigInteger.valueOf(1); 
  15. //                array[1] = new BigInteger("1");
  16. //                array[1] = BigInteger.ONE;
  17.                 array[2] = BigInteger.valueOf(2);
  18.                 for(int i=3;i<M;i++){
  19.                         array[i] = array[i-1].add(array[i-2]);
  20.                 }
  21.                 Scanner cin = new Scanner(System.in);
  22.                 while(cin.hasNextBigInteger()){
  23.                         BigInteger a = cin.nextBigInteger();
  24.                         BigInteger b = cin.nextBigInteger();
  25.                         if(a.compareTo(BigInteger.ZERO)==0 && b.compareTo(BigInteger.ZERO)==0) break;
  26.                         int cnt = 0;
  27.                         for(int i=1;i<M;i++){
  28.                                 if(array[i].compareTo(b)>0) break;
  29.                                 else if(array[i].compareTo(a)>=0) cnt++;
  30.                         }
  31.                         System.out.println(cnt);
  32.                 }
  33.         }
  34. }



打赏
扫描二维码
扫描微信