Java BigInteger类

Java BigInteger类

java.math.BigInteger 类的使用场景是大整数操作。它提供类似所有Java的基本整数运算符和java.lang.Math中的所有相关的方法的操作,如+、-、*、/、%、&、|、mod、>>、<<,以及min()、max()等等。只不过它操作的整数都是极其大的,为科学计算提供了很大的便利。比如下面的代码就是计算20000000000000000000 * 30000000000000000000,利用BigInteger可以很容易的计算出来结果。
 

import java.math.BigInteger;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String a = in.nextLine();
        String b = in.nextLine();
        BigInteger biga = new BigInteger(a);
        BigInteger bigb = new BigInteger(b);
        BigInteger result = biga.multiply(bigb);
        System.out.println(result);
    }
}
 
//输入
30000000000000000000
20000000000000000000
//输出
600000000000000000000000000000000000000

使用方法

1.赋值:

BigInteger a=new BigInteger("1231");

2.运算:

① add(); 大整数相加 
BigInteger a=new BigInteger(“23”); 
BigInteger b=new BigInteger(“34”); 
BigInteger ans = a. add(b);

②subtract(); 相减 
③multiply(); 相乘 
④divide(); 相除取整 
⑤remainder(); 取余 
⑥pow(); a.pow(b)=a^b 
⑦gcd(); 最大公约数 
⑧abs(); 绝对值 
⑨negate(); 取反数 
⑩mod(); a.mod(b)=a%b=a.remainder(b); 


例题:大菲波数   HDU - 1715

Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。

因为n很大, 的出来的 f(n) 结果会爆long long , 只能用大数来做。

代码:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		try (Scanner scanner = new Scanner(System.in)) {

			int n = scanner.nextInt();
			BigInteger[] fabs = new BigInteger[1000];

			fabs[0] = new BigInteger("1");
			fabs[1] = new BigInteger("1");

			for (int i = 2; i < 1000; i++) {
				fabs[i] = fabs[i - 1].add(fabs[i - 2]);
			}

			while (n-- > 0) {
				System.out.println(fabs[scanner.nextInt() - 1]);
			}

		}

	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值