java高精度

来源:互联网 发布:淘宝网在哪里领红包 编辑:程序博客网 时间:2024/05/17 08:50

1002

/****************Author:linhanCreate Time:2015-07-23 20:57:10File Name:Main.java ************************* */import java.math.*;import java.util.*;public class Main{    public static void main(String args[])    {        BigInteger a,b,ans;        Scanner c=new Scanner(System.in);        int t=c.nextInt();        for(int i=1;i<=t;i++)        {            ans=a=c.nextBigInteger();            b=c.nextBigInteger();            ans=a.add(b);  加法            System.out.println("Case "+i+":");            System.out.println(a+" + "+b+" = "+ans);            if(i<t) System.out.println("");        }    }}


1042

/****************Author:linhanCreate Time:2015-07-23 20:57:10File Name:Main.java ************************* */import java.math.*;import java.util.*;public class Main{    public static void main(String args[])    {        BigInteger[] a=new BigInteger[10003];        a[0]=BigInteger.valueOf(1);        for(int i=1;i<=10000;i++)        {            a[i]=a[i-1].multiply(BigInteger.valueOf(i));  乘法        }         Scanner c=new Scanner(System.in);        int n;        while(c.hasNext())        {            n=c.nextInt();            System.out.println(a[n]);        }    }}




1047

/****************Author:linhanCreate Time:2015-07-23 20:57:10File Name:Main.java ************************* */import java.math.*;import java.util.*;public class Main{    public static void main(String args[])    {        int n;        BigInteger a,b,ans=BigInteger.valueOf(0);        b=BigInteger.valueOf(0);        Scanner c=new Scanner(System.in);        n=c.nextInt();        for(int i=0;i<n;i++)        {            ans=BigInteger.valueOf(0);        while((a=(c.nextBigInteger())).compareTo(b)==1)        {            ans=ans.add(a);        }        System.out.println(ans);        if(i<n-1) System.out.println("");        }    }}


1063

/****************Author:linhanCreate Time:2015-07-23 20:57:10File Name:Main.java ************************* */import java.math.*;import java.util.*;public class Main{    public static void main(String args[])    {        int n;        BigDecimal r,ans;        Scanner c=new Scanner(System.in);       while(c.hasNext())       {            r=c.nextBigDecimal();            n=c.nextInt();            ans=BigDecimal.valueOf(1);            for(int i=0;i<n;i++)            {                ans=ans.multiply(r);            }            ans=ans.stripTrailingZeros();///整数去0和.            String s;            s=ans.toPlainString();///去科学计数法            if(s.charAt(0)=='0')                s=s.substring(1);            System.out.println(s);       }    }}


1316

/****************Author:linhanCreate Time:2015-07-23 20:57:10File Name:Main.java ************************* */import java.math.*;import java.util.*;public class Main{    static  BigInteger a,b,d=BigInteger.valueOf(0);    static  String s="1";    static BigInteger[] f=new BigInteger[500];     static int low_bound(BigInteger a,BigInteger b,int low,int high)    {        if(low<=high)        {            int mid=(low+high)>>1;            if(f[mid].compareTo(a)>=0&&f[mid].compareTo(b)<=0) return mid;            else if(f[mid].compareTo(b)>0) return low_bound(a,b,low,mid-1);            else if(f[mid].compareTo(a)<0) return low_bound(a,b,mid+1,high);        }        return 0;    }    public static void main(String args[])    {        int i;        for(i=0;i<100;i++)        {            s+="0";        }        a=new BigInteger(s);        f[1]=BigInteger.valueOf(1);        f[2]=BigInteger.valueOf(2);        for(i=3;i<=479;i++)        {            f[i]=f[i-1].add(f[i-2]);        }        Scanner c=new Scanner(System.in);        int flag=0,ans=0;        while(c.hasNext())        {            ans=0;            a=c.nextBigInteger();            b=c.nextBigInteger();            if(a.compareTo(d)==0&&b.compareTo(d)==0) break;            if(a.compareTo(BigInteger.valueOf(1))<0) a=BigInteger.valueOf(1);            flag=low_bound(a,b,1,479);            for(int j=flag;j>=1&&j<=479&&f[j].compareTo(b)<=0;j++) ans++;            for(int j=flag-1;j>=1&&f[j].compareTo(a)>=0&&j<=479;j--) ans++;            System.out.println(ans);        }    }}

1715

使用Main.java才会过

1000/1000 MS (Java/Others)

32768/32768 K (Java/Others)

/****************Author:linhanCreate Time:2015-07-24 9:09:24File Name: ************************* */import java.math.*;import java.util.*;public class Main{    static  BigInteger[] f=new BigInteger[1005];    public static void main(String args[])    {        f[1]=BigInteger.valueOf(1);        f[2]=BigInteger.valueOf(1);        for(int i=3;i<=1000;i++)        {            f[i]=f[i-1].add(f[i-2]);        }        int n,ans;        Scanner c=new Scanner(System.in);        n=c.nextInt();        for(int i=0;i<n;i++)        {            ans=c.nextInt();            System.out.println(f[ans]);        }    }}




0 0