运用BigInteger进行整数之间的高精度的加减乘除运算

简介: 运用BigInteger进行整数之间的高精度的加减乘除运算

一、acwing791. 高精度加法

给定两个正整数,计算它们的和。

输入格式

共两行,每行包含一个整数。

输出格式

共一行,包含所求的和。

数据范围

1≤整数长度≤1000001≤整数长度≤100000

输入样例:

12
23

输出样例:

35
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
 * @author zhouyanxiang
 * @Date 2021-01-2021/1/6-14:06
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BigInteger n = new BigInteger(reader.readLine());
        BigInteger m = new BigInteger(reader.readLine());
        BigInteger x = m.add(n);
        reader.close();
        System.out.println(x);
    }
}

二、792. 高精度减法

给定两个正整数,计算它们的差,计算结果可能为负数。

输入格式

共两行,每行包含一个整数。

输出格式

共一行,包含所求的差。

数据范围

1≤整数长度≤1051≤整数长度≤105

输入样例:

32
11

输出样例:

21
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
 * @author zhouyanxiang
 * @Date 2021-01-2021/1/6-14:15
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BigInteger n = new BigInteger(reader.readLine());
        BigInteger m = new BigInteger(reader.readLine());
        BigInteger x = n.subtract(m);
        reader.close();
        System.out.println(x);
    }
}

三、793. 高精度乘法

给定两个正整数A和B,请你计算A * B的值。

输入格式

共两行,第一行包含整数A,第二行包含整数B。

输出格式

共一行,包含A * B的值。

数据范围

1≤A的长度≤1000001≤A的长度≤100000,

0≤B≤100000≤B≤10000

输入样例:

2
3

输出样例:

6
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
 * @author zhouyanxiang
 * @Date 2021-01-2021/1/6-14:19
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BigInteger n = new BigInteger(reader.readLine());
        BigInteger m = new BigInteger(reader.readLine());
        BigInteger x = n.multiply(m);
        reader.close();
        System.out.println(x);
    }
}

四、794. 高精度除法

给定两个非负整数A,B,请你计算 A / B的商和余数。

输入格式

共两行,第一行包含整数A,第二行包含整数B。

输出格式

共两行,第一行输出所求的商,第二行输出所求余数。

数据范围

1≤A的长度≤1000001≤A的长度≤100000,

1≤B≤100001≤B≤10000

BB 一定不为0

输入样例:

7
2

输出样例:

3
1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
 * @author zhouyanxiang
 * @Date 2021-01-2021/1/6-14:23
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BigInteger n = new BigInteger(reader.readLine());
        BigInteger m = new BigInteger(reader.readLine());
        BigInteger x = n.divide(m);
        BigInteger s = n.mod(m);
        reader.close();
        System.out.println(x);
        System.out.println(s);
    }
}

加法运算:add()

减法运算:subtract()

乘法运算:multiply()

除法运算:divide()

取模运算:mod()


相关文章
|
存储 数据处理
计算机数据的表示及运算
计算机数据的表示和运算是计算机系统中非常重要的概念。计算机使用二进制来表示和处理数据,其中包括整数、浮点数和字符等不同类型的数据。下面将详细介绍计算机数据的表示和运算。 1. 二进制表示:计算机使用二进制系统来表示数据。二进制系统由0和1两个数字组成,每一位称为一个比特(bit)。比特是计算机中最小的存储单位,可以表示一个二进制数值(0或1)。 2. 整数表示:计算机使用补码表示整数。补码是一种用于表示负数的方法,它将负数的最高位设为1,正数的最高位设为0。补码表示可以保证负数的运算结果仍然是有效的。 3. 浮点数表示:计算机使用浮点数表示实数。浮点数由两个部分组成:尾数和指数。尾数表示
173 0
|
4天前
|
Python
数值运算
数值运算。
15 4
|
16天前
实现加减乘除计算
【10月更文挑战第26天】实现加减乘除计算。
48 7
|
6月前
|
语音技术 Python
量化模型是将浮点数运算转换为整数运算的过程
【2月更文挑战第32天】量化模型是将浮点数运算转换为整数运算的过程
66 1
|
人工智能 测试技术
MoonLight的运算问题
MoonLight的运算问题
96 0
|
6月前
|
C++
c++数字运算
c++数字运算
33 0
|
存储 C++
大整数运算(高精度运算)C/C++
大整数运算(高精度运算)C/C++
256 0
二进制浮点数的加减法运算
二进制浮点数的加减法运算
|
C语言
5.1.4_带符号整数的表示和运算_原反补
计算机组成原理之带符号整数的表示和运算_原反补
228 0
5.1.4_带符号整数的表示和运算_原反补