学习参考于这几个博客:
http://blog.csdn.net/guo_love_peng/article/details/6634150
http://blog.csdn.net/hqd_acm/article/details/5751686
http://blog.csdn.net/w00w12l/article/details/7290750
自己总结一下:
1.输入输出:
先声明一个 Scanner 类型变量。
Scanner cin=new Scanner(new BufferedInputstream(System.in));
对于各种类型变量: int a,double b,String c,BigInteger d;
a=cin.nextInt();b=cin.nextDouble();c=cin.nextLine();d=cin.nextBigInteger();
输出 System.out.println() System.out.printf() 等于c++中printf();
2.BigInteger ,BigDecimal
BigInteger 就是高精度整数,常见初始化,
BigInteger a= new BigInteger("1111111");
BigInteger a=BigInteger.valueOf(111111);
Java进制转换也很方便:
BigInteger a=cin.nextBigInteger(2); //高精度数a以二进制读入.
如果要将一个大数转换成其他进制形式的字符串 使用cin.toString(2);//将它转换成2进制表示的字符串
常见处理还有:
String st = Integer.toString(num, base); // 把num当做10进制的数转成base进制的st(base <= 35).
int num = Integer.parseInt(st, base); // 把st当做base进制,转成10进制的int(parseInt有两个参数,第一个为要转的字符串,第二个为说明是什么进制).
BigInter m = new BigInteger(st, base); // st是字符串,base是st的进制.
基本函数
1.valueOf(parament); 将参数转换为制定的类型
比如 int a=3;
BigInteger b=BigInteger.valueOf(a);
则b=3;
String s=”12345”;
BigInteger c=BigInteger.valueOf(s);
则c=12345;
2.add(); 大整数相加
BigInteger a=new BigInteger(“23”);
BigInteger b=new BigInteger(“34”);
a.add(b);
3.subtract(); 相减
4.multiply(); 相乘
5.divide(); 相除取整
6.remainder(); 取余
7.pow(); a.pow(b)=a^b
8.gcd(); 最大公约数
9.abs(); 绝对值
10.negate(); 取反数
11.mod(); a.mod(b)=a%b=a.remainder(b);
12.max(); min();
13.punlic int comareTo();
14.boolean equals(); 是否相等
BigDecima 用法也差不多。
补充:
BigDecimal a; a=a.stripTrailingZeros();//消掉小数a的前导0
String d=a.toPlainString(); //高精度数a的朴素字符串表示,防止出现科学计数法的形式.
String d; if(d.charAt(0)=='0') d=d.substring(1); //这里d.charAt(0)相当于d[0] 的java表示形式.