运用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()


相关文章
|
11月前
|
安全 API 数据安全/隐私保护
深入理解 PUT 和 POST 的区别
本文深入解析了HTTP请求中PUT与POST方法的区别及其应用场景。POST为非幂等方法,常用于创建资源或提交数据,每次请求可能改变服务器状态;PUT是幂等的,主要用于更新或完全替换特定资源,重复请求不会产生额外影响。文章通过对比两者特性、操作语义及实际使用场景,帮助开发者在RESTful API设计中做出更合理的选择,提升系统效率与可维护性。
2388 1
|
算法
面试场景题:如何设计一个抢红包随机算法
本文详细解析了抢红包随机算法的设计与实现,涵盖三种解法:随机分配法、二倍均值法和线段切割法。随机分配法通过逐次随机分配金额确保总额不变,但易导致两极分化;二倍均值法优化了金额分布,使每次抢到的金额更均衡;线段切割法则将总金额视为线段,通过随机切割点生成子金额,手气最佳金额可能更高。代码示例清晰,结果对比直观,为面试中类似算法题提供了全面思路。
1884 16
|
消息中间件 程序员 调度
简单高效!本地消息表助你轻松实现分布式事务
本文由小米分享,介绍如何使用本地消息表解决分布式事务问题。分布式事务在微服务架构中变得复杂,本地消息表提供了一种简单高效的方法。它通过在同一事务中处理业务操作和消息记录,然后异步发送消息,确保数据一致性。文章详细阐述了本地消息表的原理、实现步骤、优势及不足,强调了其实现的简单性、高性能和高可靠性,但也指出其潜在的开发复杂度和延迟性问题。
2201 9
|
程序员 数据库 微服务
长事务管理不再难:Saga模式全面解析
本文介绍了分布式事务中的Saga模式,它用于解决微服务架构下的事务管理问题。Saga通过一系列本地事务和补偿操作确保最终一致性,分为编排和协同两种模式。文章重点讲解了编排模式,其中 Saga 协调者负责事务的执行和失败后的补偿。Saga 模式适用于业务流程明确且需要严格补偿的场景,能有效管理长事务,但实现上可能增加复杂性,并存在一致性延迟。文章还讨论了其优缺点和适用场景,强调了在面对分布式事务挑战时,Saga 模式的价值和潜力。
3115 6
|
缓存 NoSQL 关系型数据库
mysql和缓存一致性问题
本文介绍了五种常见的MySQL与Redis数据同步方法:1. 双写一致性,2. 延迟双删策略,3. 订阅发布模式(使用消息队列),4. 基于事件的缓存更新,5. 缓存预热。每种方法的实现步骤、优缺点均有详细说明。
520 3
|
存储 分布式计算 前端开发
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
639 0
|
Web App开发 数据可视化 前端开发
Pixi入门第一章:绘制一个小精灵
这篇文章是关于Pixi.js的入门教程第一部分,指导读者如何创建并显示一个基本的2D精灵,适用于开始学习Pixi.js进行2D图形开发的初学者。
519 0
Pixi入门第一章:绘制一个小精灵
|
SQL 弹性计算 负载均衡
10分钟将您的Web应用接入防火墙
如果您现在拥有一个Web应用,并且有安全诉求,请阅读本文。
10分钟将您的Web应用接入防火墙
Shutter Encoder(多媒体转换工具) v18.0中文免费版
Shutter Encoder是一款强力的免费视频转换器,基于ffmpeg,所以功能十分的强大,对于视频格式的支持也非常的完善,常用的格式基本都支持,除了转换功能,经常需要用到的视频画面大小调整、批量转换、视频裁切、视频裁剪功能都有。
591 3
|
存储 JSON API
淘宝/天猫商品详情实时数据API技术实现
随着电子商务的蓬勃发展,对于电商平台的商家而言,实时获取商品数据变得至关重要。通过API接口,可以轻松地从电商平台获取这些数据。本文将详细介绍如何使用淘宝/天猫提供的API接口实现商品详情数据的实时获取,并给出具体的代码示例。

热门文章

最新文章