高精度算法【Java】(待更新中~)

高进度加法

在Java中可以使用BigInteger进行高精度计算,除此也可以仿照竖式相加的计算原理进行计算。

BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作.

核心思想:

将两个数转为字符数组,都倒序后,进行对应位相乘,将有进位的值加到下次计算中。

算法实现:

java 复制代码
import java.util.Scanner;

public class GJD_addition {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[] a = scanner.next().toCharArray();
        char[] b = scanner.next().toCharArray();
        int la = a.length;
        int lb = b.length;
        int lc = Math.max(la,lb)+1;
        int[] c = new int[lc];

        //将两个数组转置,并将元素转为数字
        int[] s1 = new int[lc];
        int[] s2 = new int[lc];
        for (int i = 0; i < la; i++) {
            s1[la-i-1] = a[i]-'0';
        }
        for (int i = 0; i < lb; i++) {
            s2[lb-i-1] = b[i]-'0';
        }
        //进行加法

        for (int i = 0; i < lc-1; i++) {
            c[i] += s1[i]+s2[i];
            c[i+1] = c[i]/10;
            c[i] = c[i]%10;
        }
        if (c[lc-1]==0){
            lc--;
        }
        for (int i =lc-1; i >=0; i--) {
            System.out.print(c[i]);
        }
    }
}

相关力扣题:

2. 两数相加

LCR 025. 两数相加 II

445. 两数相加 II

67. 二进制求和

高精度减法

高精度乘法

高精度除法

(持续更新中~)

相关推荐
小强库计算机毕业设计1 分钟前
源码分享Spring Boot + Vue3 的校园社团管理系统
java·spring boot·后端·计算机毕业设计
星空露珠11 分钟前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字14 分钟前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
格子软件15 分钟前
2026年分布式GEO代理流量调度:源码级状态机防重挂实战
java·vue.js·人工智能·spring boot·分布式·vue
hj28625118 分钟前
Docker 容器化技术标准化笔记
java·笔记·docker
手写码匠23 分钟前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
我是一颗柠檬29 分钟前
【Java项目技术亮点】EXPLAIN深度分析与慢查询治理
android·java·开发语言
万亿少女的梦16832 分钟前
基于Spring Boot的社区管理系统设计与实现
java·spring boot·mysql·vue·系统设计
luj_176833 分钟前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
大气的小蜜蜂42 分钟前
领域层的服务
java·前端·数据库