java 关于大数的一些问题

来源:互联网 发布:unix高级环境编程 编辑:程序博客网 时间:2024/06/07 02:09

hdu 1047

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047

代码:

import java.math.*;import java.util.*;public class Main {    public static void main(String arg[]) {        int T, ans = 0;        BigInteger a;        Scanner cin = new Scanner(System.in);        T = cin.nextInt();        while (T-- > 0) {            ans++;            BigInteger sum = new BigInteger("0");            while (true) {                a = cin.nextBigInteger();                sum = sum.add(a);                if (a.compareTo(new BigInteger("0")) == 0)                    break;            }            if (ans > 1)                System.out.println();            System.out.println(sum);        }    }}
hdu 1063

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063

代码:

import java.math.*;import java.util.*;import java.lang.*;public class Main {    public static void main(String arg[]){        BigDecimal a;        int n,i;        String s;        Scanner cin=new Scanner(System.in);        while(cin.hasNext()){            BigDecimal sum=new BigDecimal("1");            a=cin.nextBigDecimal();            n=cin.nextInt();            for(i=0;i<n;i++){                sum=sum.multiply(a);            }            s=sum.stripTrailingZeros().toPlainString();            if(s.startsWith("0"))                s=s.substring(1);            System.out.println(s);        }    }}
hdu 1316

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

代码:

import java.math.*;import java.util.*;public class Main {     public static void main(String arg[]){         Scanner cin=new Scanner(System.in);         BigInteger a,b;         int sum;         BigInteger f[]=new BigInteger[1000];         f[1]=new BigInteger("1");         f[2]=new BigInteger("2");         for(int i=3;i<600;i++)             f[i]=f[i-1].add(f[i-2]);         while(true){             sum=0;             a=cin.nextBigInteger();             b=cin.nextBigInteger();             if(a.add(b).compareTo(new BigInteger("0"))==0)                 break;             for(int i=1;i<600;i++){                 if(f[i].compareTo(a)>=0&&f[i].compareTo(b)<=0)                     sum++;                 if(f[i].compareTo(b)>0)                     break;             }             System.out.println(sum);         }     }}

hdu 1715

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715

代码:

import java.math.*;import java.util.*;public class Main {     public static void main(String arg[]){         BigInteger a[]=new BigInteger [1005];         int T,n;         Scanner cin=new Scanner(System.in);         T=cin.nextInt();         while(T-- >0){             a[1]=a[2]=new BigInteger("1");             n=cin.nextInt();             for(int i=3;i<=n;i++)                 a[i]=a[i-1].add(a[i-2]);             System.out.println(a[n]);         }      }}

hdu 1753

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1753
代码:

import java.math.*;import java.util.*;import java.io.*;public class Main {     public static void main(String arg[]){         Scanner cin=new Scanner(System.in);         while(cin.hasNext()){             String str;             BigDecimal a=cin.nextBigDecimal();             BigDecimal b=cin.nextBigDecimal();             BigDecimal ans;             ans=a.add(b);             System.out.println(ans.stripTrailingZeros().toPlainString());         }             }}


0 0