java大整数的用法

importjava.math.BigInteger;

publicclassabc

{

publicstaticvoidmain(String[] args)

{

BigInteger bigInteger1=newBigInteger("123456789012345689123413241234109999321413253426256");

BigInteger bigInteger2=newBigInteger("9999999999999999999999999999999999999999999999999");

//add(加)

bigInteger1=bigInteger1.add(bigInteger2);

System.out.println(bigInteger1);

//subtract(减)

bigInteger1=bigInteger1.subtract(bigInteger2);

System.out.println(bigInteger1);

//multiplay(乘)

bigInteger1=bigInteger1.multiply(bigInteger2);

System.out.println(bigInteger1);

//divide(除)

bigInteger1=bigInteger1.divide(bigInteger2);

System.out.println(bigInteger1);

//negate(取相反数)

bigInteger1=bigInteger1.negate();

System.out.println(bigInteger1);

//pow(次方)

bigInteger1=bigInteger1.pow(10);

System.out.println(bigInteger1);

//最后一个(pow)输出822526259969629520153101122399497267810820646209100034107289685263315159632308144831374076434409138022661540729292142535548443646527802945487955787074321901682016392981171243389906853091274410210521602192777845202346331669556282743561193277694935461774695127206357303815843367925743175834034307102019549300834630106026193909111800769211331213033566417046739040269952221223183087733472654826824099458751406700255831111833751227821269483039466115059377165177024376865993794139752199224597958945119666176

}

}

BigInteger支持任意精度的整数。也就是说,在运算中,可以准确地表示任何大小的整数值,而不会丢失任何信息。

常用方法:

abs()//返回其值是此BigInteger的绝对值的BigInteger。

add(BigInteger val)//返回其值为(this+val)的BigInteger。

subtract(BigIntegerval)//返回其值为(this-val)的BigInteger。

multiply(BigInteger val) //返回其值为(this*val)的BigInteger。

divide(BigInteger val)//返回其值为(this/val)的BigInteger。

remainder(BigInteger val)//返回其值为(this%val)的BigInteger。

compareTo(BigInteger val)//将此BigInteger与指定的BigInteger进行比较。返回值1、0、-1分别表示大于、等于、小于

pow(intexponent) //返回当前大数的exponent次幂。

toString()//返回此BigInteger的十进制字符串表示形式。

toString(intradix)//返回此BigInteger的给定基数(radix进制)的字符串表示形式。

/*BigInteger和BigDecimal是在java.math包中已有的类,前者表示整数,后者表示浮点数。

为什么用大数字?

1)BigInteger:支持任意精度的整数,可以精确地表示任意大小的整数值,同时在运算过程中不会丢失任何信息。

2)BigInteger:可以精确地表示任意精度的小数,同时在运算过程中不会丢失任何信息。

注意:不能直接用符号如+、-来使用大数字,例如:*/

importjava.math.BigInteger;

publicclassabc {

publicstaticvoidmain(String[] args) {

inta = 231, b = 423, c = 1393;

BigInteger x, y, z, ans;

x = BigInteger.valueOf(a);

y = BigInteger.valueOf(b);

z = BigInteger.valueOf(c);

ans = x.add(y); //加运算

System.out.print(ans+"");

ans = z.divide(y); //除运算

System.out.print(ans+"");

ans = x.mod(z); //模运算

System.out.print(ans+"");

if(ans.compareTo(x) == 0)

System.out.println("1");

}

}

//运算结果:6543 231 1

/*主要有以下方法可以使用:

BigIntegeradd(BigInteger other)

BigIntegersubtract(BigInteger other)

BigIntegermultiply(BigInteger other)

BigIntegerdivide(BigInteger other)

BigIntegermod(BigIntegerother)

intcompareTo(BigInteger other)

staticBigInteger valueOf(long x)*/



  用这样一组数字,0,1,1,2,3,5,8........,求第100个数是多少!看到这个题,会想到用一个int数组去做,但是内存溢出,后来换了long数组,还是一样,内存溢出, 跟上代码看看吧

import java.math.BigInteger;
public class abc
{
 public static void main(String[] args)
 {
	 int num=100,i;
	 int[] intarr=new int[100];
	 intarr[0]=0; intarr[1]=1;

	 long[] longarr=new long[100];
	 longarr[0]=0; longarr[1]=1;
       //longarr[0]=0L; longarr[1]=1L;

	 BigInteger bigarr[]=new BigInteger[100];
	 bigarr[0]=BigInteger.ZERO;
	 bigarr[1]=BigInteger.ONE;
       //bigarr[0]=new BigInteger("0");
	 //bigarr[1]=new BigInteger("1");
       //bigarr[0]=BigInteger.valueOf(0);
	 //bigarr[1]=BigInteger.valueOf(1);


	 for( i=2;i<num;i++){
		 intarr[i]=intarr[i-1]+intarr[i-2];
		 longarr[i]=longarr[i-1]+longarr[i-2];
		 bigarr[i]=bigarr[i-1].add(bigarr[i-2]);
	 }
	  System.out.println("---整型数组存储结果---");
	 for(i=0;i<intarr.length;i++)
		 System.out.println("intarr"+"["+i+"]"+":"+intarr[i]);
	 System.out.println("---长整型数组存储结果---");
	 for(i=0;i<longarr.length;i++)
		 System.out.println("longarr"+"["+i+"]"+":"+longarr[i]);
	 System.out.println("---大整数数组存储结果---");
	 for(i=0;i<bigarr.length;i++)
	      System.out.println("bigarr"+"["+i+"]"+":"+bigarr[i]);
 }
 }

 ---整型数组存储结果---
intarr[0]:0
intarr[1]:1
intarr[2]:1
intarr[3]:2
intarr[4]:3
intarr[5]:5
intarr[6]:8
intarr[7]:13
intarr[8]:21
intarr[9]:34
intarr[10]:55
intarr[11]:89
intarr[12]:144
intarr[13]:233
intarr[14]:377
intarr[15]:610
intarr[16]:987
intarr[17]:1597
intarr[18]:2584
intarr[19]:4181
intarr[20]:6765
intarr[21]:10946
intarr[22]:17711
intarr[23]:28657
intarr[24]:46368
intarr[25]:75025
intarr[26]:121393
intarr[27]:196418
intarr[28]:317811
intarr[29]:514229
intarr[30]:832040
intarr[31]:1346269
intarr[32]:2178309
intarr[33]:3524578
intarr[34]:5702887
intarr[35]:9227465
intarr[36]:14930352
intarr[37]:24157817
intarr[38]:39088169
intarr[39]:63245986
intarr[40]:102334155
intarr[41]:165580141
intarr[42]:267914296
intarr[43]:433494437
intarr[44]:701408733
intarr[45]:1134903170
intarr[46]:1836311903
intarr[47]:-1323752223
intarr[48]:512559680
intarr[49]:-811192543
intarr[50]:-298632863
intarr[51]:-1109825406
intarr[52]:-1408458269
intarr[53]:1776683621
intarr[54]:368225352
intarr[55]:2144908973
intarr[56]:-1781832971
intarr[57]:363076002
intarr[58]:-1418756969
intarr[59]:-1055680967
intarr[60]:1820529360
intarr[61]:764848393
intarr[62]:-1709589543
intarr[63]:-944741150
intarr[64]:1640636603
intarr[65]:695895453
intarr[66]:-1958435240
intarr[67]:-1262539787
intarr[68]:1073992269
intarr[69]:-188547518
intarr[70]:885444751
intarr[71]:696897233
intarr[72]:1582341984
intarr[73]:-2015728079
intarr[74]:-433386095
intarr[75]:1845853122
intarr[76]:1412467027
intarr[77]:-1036647147
intarr[78]:375819880
intarr[79]:-660827267
intarr[80]:-285007387
intarr[81]:-945834654
intarr[82]:-1230842041
intarr[83]:2118290601
intarr[84]:887448560
intarr[85]:-1289228135
intarr[86]:-401779575
intarr[87]:-1691007710
intarr[88]:-2092787285
intarr[89]:511172301
intarr[90]:-1581614984
intarr[91]:-1070442683
intarr[92]:1642909629
intarr[93]:572466946
intarr[94]:-2079590721
intarr[95]:-1507123775
intarr[96]:708252800
intarr[97]:-798870975
intarr[98]:-90618175
intarr[99]:-889489150
---长整型数组存储结果---
longarr[0]:0
longarr[1]:1
longarr[2]:1
longarr[3]:2
longarr[4]:3
longarr[5]:5
longarr[6]:8
longarr[7]:13
longarr[8]:21
longarr[9]:34
longarr[10]:55
longarr[11]:89
longarr[12]:144
longarr[13]:233
longarr[14]:377
longarr[15]:610
longarr[16]:987
longarr[17]:1597
longarr[18]:2584
longarr[19]:4181
longarr[20]:6765
longarr[21]:10946
longarr[22]:17711
longarr[23]:28657
longarr[24]:46368
longarr[25]:75025
longarr[26]:121393
longarr[27]:196418
longarr[28]:317811
longarr[29]:514229
longarr[30]:832040
longarr[31]:1346269
longarr[32]:2178309
longarr[33]:3524578
longarr[34]:5702887
longarr[35]:9227465
longarr[36]:14930352
longarr[37]:24157817
longarr[38]:39088169
longarr[39]:63245986
longarr[40]:102334155
longarr[41]:165580141
longarr[42]:267914296
longarr[43]:433494437
longarr[44]:701408733
longarr[45]:1134903170
longarr[46]:1836311903
longarr[47]:2971215073
longarr[48]:4807526976
longarr[49]:7778742049
longarr[50]:12586269025
longarr[51]:20365011074
longarr[52]:32951280099
longarr[53]:53316291173
longarr[54]:86267571272
longarr[55]:139583862445
longarr[56]:225851433717
longarr[57]:365435296162
longarr[58]:591286729879
longarr[59]:956722026041
longarr[60]:1548008755920
longarr[61]:2504730781961
longarr[62]:4052739537881
longarr[63]:6557470319842
longarr[64]:10610209857723
longarr[65]:17167680177565
longarr[66]:27777890035288
longarr[67]:44945570212853
longarr[68]:72723460248141
longarr[69]:117669030460994
longarr[70]:190392490709135
longarr[71]:308061521170129
longarr[72]:498454011879264
longarr[73]:806515533049393
longarr[74]:1304969544928657
longarr[75]:2111485077978050
longarr[76]:3416454622906707
longarr[77]:5527939700884757
longarr[78]:8944394323791464
longarr[79]:14472334024676221
longarr[80]:23416728348467685
longarr[81]:37889062373143906
longarr[82]:61305790721611591
longarr[83]:99194853094755497
longarr[84]:160500643816367088
longarr[85]:259695496911122585
longarr[86]:420196140727489673
longarr[87]:679891637638612258
longarr[88]:1100087778366101931
longarr[89]:1779979416004714189
longarr[90]:2880067194370816120
longarr[91]:4660046610375530309
longarr[92]:7540113804746346429
longarr[93]:-6246583658587674878
longarr[94]:1293530146158671551
longarr[95]:-4953053512429003327
longarr[96]:-3659523366270331776
longarr[97]:-8612576878699335103
longarr[98]:6174643828739884737
longarr[99]:-2437933049959450366
---大整数数组存储结果---
bigarr[0]:0
bigarr[1]:1
bigarr[2]:1
bigarr[3]:2
bigarr[4]:3
bigarr[5]:5
bigarr[6]:8
bigarr[7]:13
bigarr[8]:21
bigarr[9]:34
bigarr[10]:55
bigarr[11]:89
bigarr[12]:144
bigarr[13]:233
bigarr[14]:377
bigarr[15]:610
bigarr[16]:987
bigarr[17]:1597
bigarr[18]:2584
bigarr[19]:4181
bigarr[20]:6765
bigarr[21]:10946
bigarr[22]:17711
bigarr[23]:28657
bigarr[24]:46368
bigarr[25]:75025
bigarr[26]:121393
bigarr[27]:196418
bigarr[28]:317811
bigarr[29]:514229
bigarr[30]:832040
bigarr[31]:1346269
bigarr[32]:2178309
bigarr[33]:3524578
bigarr[34]:5702887
bigarr[35]:9227465
bigarr[36]:14930352
bigarr[37]:24157817
bigarr[38]:39088169
bigarr[39]:63245986
bigarr[40]:102334155
bigarr[41]:165580141
bigarr[42]:267914296
bigarr[43]:433494437
bigarr[44]:701408733
bigarr[45]:1134903170
bigarr[46]:1836311903
bigarr[47]:2971215073
bigarr[48]:4807526976
bigarr[49]:7778742049
bigarr[50]:12586269025
bigarr[51]:20365011074
bigarr[52]:32951280099
bigarr[53]:53316291173
bigarr[54]:86267571272
bigarr[55]:139583862445
bigarr[56]:225851433717
bigarr[57]:365435296162
bigarr[58]:591286729879
bigarr[59]:956722026041
bigarr[60]:1548008755920
bigarr[61]:2504730781961
bigarr[62]:4052739537881
bigarr[63]:6557470319842
bigarr[64]:10610209857723
bigarr[65]:17167680177565
bigarr[66]:27777890035288
bigarr[67]:44945570212853
bigarr[68]:72723460248141
bigarr[69]:117669030460994
bigarr[70]:190392490709135
bigarr[71]:308061521170129
bigarr[72]:498454011879264
bigarr[73]:806515533049393
bigarr[74]:1304969544928657
bigarr[75]:2111485077978050
bigarr[76]:3416454622906707
bigarr[77]:5527939700884757
bigarr[78]:8944394323791464
bigarr[79]:14472334024676221
bigarr[80]:23416728348467685
bigarr[81]:37889062373143906
bigarr[82]:61305790721611591
bigarr[83]:99194853094755497
bigarr[84]:160500643816367088
bigarr[85]:259695496911122585
bigarr[86]:420196140727489673
bigarr[87]:679891637638612258
bigarr[88]:1100087778366101931
bigarr[89]:1779979416004714189
bigarr[90]:2880067194370816120
bigarr[91]:4660046610375530309
bigarr[92]:7540113804746346429
bigarr[93]:12200160415121876738
bigarr[94]:19740274219868223167
bigarr[95]:31940434634990099905
bigarr[96]:51680708854858323072
bigarr[97]:83621143489848422977
bigarr[98]:135301852344706746049
bigarr[99]:218922995834555169026

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值