java 大数计算

时间:2021-11-07 08:48:33

这几天做了几道用大数的题,发现java来做大数运算十分方便。对acmer来说是十分实用的

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(); 是否相等

15.BigInteger构造函数:

 import java.io.*;
import java.math.BigInteger;
import java.util.*;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner (new BufferedInputStream(System.in));
PrintWriter cout=new PrintWriter(System.out);
int t;
t=cin.nextInt();
int eg=1;
while(t>0)
{
BigInteger eight=new BigInteger("8");
BigInteger seven=new BigInteger("7");
BigInteger one=new BigInteger("1");
String inp;
inp=cin.next();
BigInteger n=new BigInteger(inp);
BigInteger ans;
BigInteger ans2;
ans=n.multiply(n).multiply(eight);
ans2=n.multiply(seven);
ans=ans.subtract(ans2);
ans=ans.add(one);
cout.println("Case #"+eg+": "+ans);
++eg;
--t; }
cout.flush();
} }

大数的所有计算都是与大数之间进行的

BIgInteger a,b;

a=a.add(b);

a=a.substract(b);

a=a.multiply(b);

a=a.divied(b);

a=a.gcd(b);