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