实习机试时有大数相加,前几天校招有大数相减的题。这种题c,c++可能会比较复杂,在java里却比较简单,因为已经有写好的类和方法供调用了。
在JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。
这两个类都在java.math.*;包中,那当然就要import啦
===================
构造函数:
一般用到以下两种:
BigInteger(String val);
将指定字符串转换为十进制表示形式;
BigInteger(String val,int radix);
将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger
这一点是必须的,要转化成BigInteger 类型的。
BigInteger a = new BigInteger("1111111111111111111");
BigInteger b = new BigInteger("22222222222222222222");
相加 add();
a.add(b);这样才可以
相减 subtract();
相乘 multiply();
相除 divide();
求余 remainder();
当然,,这个BigInteger类中还有好多的方法,取反啊,与,或,等等。。
===============================
至于怎么不用jdk中的函数去实现,这里先不在详说,,有兴趣可以再看看吧。