Java 大数

头文件

import java.math.*;
import java.util.*;
import java.io.*;

 

输入输出

static Scanner cin = new Scanner(System.in);
static PrintWriter cout = new PrintWriter(System.out, true);

 

数组

static BigInteger a[] = new BigInteger [1005];

 

主体

 

public class Main{
    public static void main(String args[]){
         Scanner cin = new Scanner(System.in);        // 输入必备句
    }
}

与c/c++进行对比:

while(n-->0)      // 等价 while(n--) n减到0


EOF:用法
普通的数: while(cin.hasNextInt())                      //等同于!=EOF,第一数一定要输入整形的
大数的一般是:while(cin.hasNextBigInteger())  //第一个数一定要输入大数
System.out.print(m.toString());                          //  m.toString()  将m转为String 类   

 

用法

     运算类

//d为int型,a,b,c都为大数
c = a.add(b);               //   相加
c = a.subtract(b);       //   相减
c = a.multiply(b);       //   相乘
c = a.divide(b);          //   相除取整
c = a.gcd(b);              //   最大公约数
c = a.remainder(b);   //   取余
c = a.mod(b);             //   a mod b
c = a.abs();                 //   a的绝对值
c = a.negate();           //    a的相反数
c = a.pow(d);             //    a的d次幂    d为int型    
c = a.max(b);             //    取a,b中较大的
c = a.min(b);              //    取a,b中较小的
d = a.compareTo(b); //    比较a与b的大小   d=-1小于 d=0等于 d=1大于  d为int型
a.equals(b);               //  判断a与b是否相等    相等返回true  不相等返回false 

 

       类型转换类

d = a.intValue();          //       将大数a转换为 int 类型赋值给 d
e = a.longValue();       //       将大数a转换为  long 类型赋值给 e
f = a.floatValue();        //       将大数a转换为  float 类型赋值给 f
g = a.doubleValue();   //       将大数a转换为  double 类型赋值给 g
s = a.toString();          //       将大数a转换为 String 类型赋值给 s
<span style = "color:#ff0000;"> s = a.toPlainString();  //将大数a转换为String类型赋值给s,且不表示为科学计数法</span>
a = BigInteger.valueOf(e);  // 将 e 以大数形式赋值给大数 a   e只能为long或int
a = newBigInteger(s,  d);  // 将s数字字符串以d进制赋值给大数a如果d=s字符数字的进制则等同于将数字字符串以大数形式赋值给大数a 

     

     进制转换类

String st = Integer.toString(num, base);   //把int型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的进制.
BigInteger  a;  int  b;  String  c;
a = cin.nextBigInteger(b);    //以b进制读入一个大数赋值给a
c = a.toString(b);                  // 将大数a以b进制的方式赋给字符串c
a = newBigInteger(c, b);      //把c 当做“b进制“转为十进制大数赋值给a

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值