java的BigInteger使用指南

先上一个昨天写的破快速幂:

(注:hdu交题的时候public class那里的类名是Main)

 1 import java.util.*;
 2 import java.math.*;
 3 
 4 public class Main{
 5     public static void main(String[] args)
 6     {
 7         BigInteger a,c,aa,cc;
 8         int b,d,ans;
 9         Scanner in=new Scanner(System.in);
10         while (in.hasNext())
11         {
12             aa=new BigInteger("1");
13             cc=new BigInteger("1");
14             a=in.nextBigInteger();
15             b=in.nextInt();
16             c=in.nextBigInteger();
17             d=in.nextInt();
18             if ((a.compareTo(c)==1)&&(b>d))
19                 ans=1;
20             else if ((a.compareTo(c)==-1)&&(b<d))
21                 ans=-1;
22             else
23             {
24                 while (b>0)
25                 {
26                     if (b%2!=0)
27                         aa=aa.multiply(a);
28                     b=b/2;
29                     a=a.multiply(a);
30                 }
31                 while (d>0)
32                 {
33                     if (d%2!=0)
34                         cc=cc.multiply(c);
35                     d=d/2;
36                     c=c.multiply(c);
37                 }
38                 
39                 //System.out.println(aa+"  "+cc);
40                 ans=aa.compareTo(cc);
41             }
42             if (ans==0)
43                 System.out.println("=");
44             else if (ans==-1)
45                 System.out.println("<");    //aa<cc
46             else if (ans==1)
47                 System.out.println(">");    //aa>cc
48         }
49     }
50 }

 

BigInteger类常用的方法:

add:+  subtract:-  multiply:*  divide:/  remainder:%(mod)

a.pow(b):a^b  abs:绝对值

compareTo:比较大小

min、max:取最值

valueOf:赋初值(或者用上面的newBigInteger)

 

 

Reference:

http://www.cppblog.com/aswmtjdsj/archive/2011/08/20/153973.aspx

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。