当前位置: 首页 > article >正文

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

高进度加法

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

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

核心思想:

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

 

 算法实现:

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. 二进制求和 

高精度减法

高精度乘法

高精度除法

(持续更新中~)


http://www.kler.cn/news/134993.html

相关文章:

  • 【以图会意】操作系统的加载流程
  • 【Linux】C文件系统详解(四)——磁盘的物理和抽象结构
  • Bert浅谈
  • vue使用本地图片设置为默认图
  • 【Django使用】django经验md文档10大模块。第4期:Django数据库增删改查
  • 整形数据和浮点型数据在内存中的存储差别
  • 微服务调用链路追踪
  • 使用Python实现3D曲线拟合
  • Java爬虫的使用案例及简单总结
  • 场景交互与场景漫游-路径漫游(7)
  • 腾讯云轻量数据库性能如何?轻量数据库租用配置价格表
  • JavaScript实现飞机发射子弹详解(内含源码)
  • 超聚变服务器关闭超线程CPU的步骤(完整版)
  • 【开源】基于Vue.js的在线课程教学系统的设计和实现
  • 右键菜单和弹出菜单的区别
  • 基于springboot实现校园在线拍卖系统项目【项目源码】计算机毕业设计
  • 如何在Linux上搭建本地Docker Registry并实现远程连接
  • vscode 推送本地新项目到gitee
  • Linux入门(三)
  • 22. 深度学习 - 自动求导
  • 反射和序列化操作会破坏单例模式
  • redis 介绍1
  • three.js相机调用reset方法复原但无法完全复原
  • docker 部署Redis集群(三主三从,以及扩容、缩容)
  • flink的window和windowAll的区别
  • list转map(根据某个或多个属性分组)
  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(六)
  • JAVA必应回答。
  • 参加了南京 GDG 活动:这些精彩的技术讨论,值得与你分享~
  • 基于RFID的自动化仓储设备研发项目可行性研究报告