java处理大整数

来源:互联网 发布:怎么看淘宝粉丝有谁 编辑:程序博客网 时间:2024/05/29 10:52

http://acm.hdu.edu.cn/showproblem.php?pid=1002

/*给两个大整数A和B,计算并输出A + B = ?*/import java.io.*;import java.util.*;import java.math.*;public class hdu1002{public static void main(String args[]){Scanner cin = new Scanner(System.in);int T = cin.nextInt();for(int i=0;i<T;i++){BigInteger a = cin.nextBigInteger();BigInteger b = cin.nextBigInteger();System.out.println("Case "+(i+1)+":");System.out.println(a+" "+"+"+" "+b+" "+"="+" "+(a.add(b)));if(i!=T-1) System.out.println();}}}

http://acm.hdu.edu.cn/showproblem.php?pid=1042

/*给一个整数0<N<10000,计算N!;*/import java.io.*;import java.util.*;import java.math.*;public class hdu1042{public static void main(String[] args){Scanner cin = new Scanner(System.in);while(cin.hasNextInt()){int 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://acm.hdu.edu.cn/showproblem.php?pid=1047

/*首先输入一个n,表示n组测试实例;每个测试实例有多多行,每行一个大整数,当输入0标志一个实例的结束;对于每个实例输出所有大整数的和,每两个实例的结果用一个空行隔开;*/import java.io.*;import java.util.*;import java.math.*;public class hdu1047{public static void main(String[] args){Scanner cin = new Scanner(System.in);cin.hasNextInt();int n = cin.nextInt();for(int i=0;i<n;i++){if(i!=0) System.out.println();BigInteger ans = BigInteger.ZERO;while(cin.hasNextBigInteger()){BigInteger temp = cin.nextBigInteger();if(temp.intValue()==0)break;ans = ans.add(temp);}System.out.println(ans);}}}

http://acm.hdu.edu.cn/showproblem.php?pid=1316

/*Fibonacci numbers: f1=1; f2=2; fn=fn-1+fn-2;给两个数大整数a和b(a<=b<=10^100)。a=b=0表示输入结束;对每一个a和b,统计并输出a,b之间的斐波纳契数的个数;*/import java.io.*;import java.util.*;import java.math.*;public class hdu1316{public static void main(String[] args){int M = 505;BigInteger array[] = new BigInteger[M];array[1] = BigInteger.valueOf(1); //array[1] = new BigInteger("1");//array[1] = BigInteger.ONE;array[2] = BigInteger.valueOf(2);for(int i=3;i<M;i++){array[i] = array[i-1].add(array[i-2]);}Scanner cin = new Scanner(System.in);while(cin.hasNextBigInteger()){BigInteger a = cin.nextBigInteger();BigInteger b = cin.nextBigInteger();if(a.compareTo(BigInteger.ZERO)==0 && b.compareTo(BigInteger.ZERO)==0) break;int cnt = 0;for(int i=1;i<M;i++){if(array[i].compareTo(b)>0) break;else if(array[i].compareTo(a)>=0) cnt++;}System.out.println(cnt);}}}


原创粉丝点击