JAVA高精度乘法模板(大数乘以一个小数)

2023-11-12

1.思路

高精度乘法是大数乘以一个int型的小数,和前面模拟不同,这里不是一位一位的乘,而是a一位乘以整个数b,当a乘到最高位且没有进位就结束了。

2.代码模板
方法一:
//a为大数,倒序存储,b为int型,返回a*b的结果
public static List<Integer> multiply(List<Integer> a, int b) {
    int t = 0;		//保存进位
    List<Integer> c = new ArrayList<>();	//保存答案
    for(int i = 0; i < a.size(); i++) {
        t += a.get(i) * b;	//用a的一位乘以b加上之前的进位
        c.add(t % 10);		//保存当前位计算的结果
        t /= 10;			//前面保存了一位,所以要开始对下一位计算存储
    }
    while(t != 0) {			//如果进位还没用完
        c.add(t % 10);
        t /= 10;
    }
    while(c.size() > 1 && c.get(c.size() - 1) == 0)	//去掉前导0,实际上只有b为0时才有前导0
        c.remove(c.size() - 1);
    return c;
}
    
    
方法二:
//Java大数
BigInteger a = new BigInteger(s[0]);
BigInteger b = new BigInteger(s[1]);
BigInteger c = a.multiply(b);
3.复杂度分析
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA高精度乘法模板(大数乘以一个小数) 的相关文章

随机推荐

  • 2022电大国家开放大学网上形考任务-客户关系管理非免费(非答案)

    客户关系管理形考作业一答案 试题 1 1 不是常用的市场营销组合理论 A 4C 理论 B 4P 理论 C 4A 理论 D 4S 理论 试题 2 2 企业实施客户关系管理的作用主要体现在提升企业竞争优势 提高客户满意度 以及提升企业销售业绩
  • 【Verilog 常见设计】(0)二进制码和格雷码互转 Verilog 实现

    目录 格雷码介绍 转化原理 Verilog 实现 testbench 测试代码 仿真波形 格雷码介绍 在一组数的编码中 若任意两个相邻的代码只有一位二进制数不同 则称这种编码为格雷码 Gray Code 另外由于最大数与最小数之间也仅一位数
  • uniapp原生插件-YL视频播放器

    YL视频播放器uniapp插件市场地址 https ext dcloud net cn plugin id 9569 简介 YL视频播放器是一款适用于安卓端的高性能原生插件 ios暂不支持 支持3核心切换 exo ijk 安卓原生 支持点播
  • 【ChatGPT】500个ChatGPT/GPT-4 Prompt技巧

    文章目录 一 前言 二 什么是Prompt Engineering 三 ChatGPT GPT 4 Prompt Engineering使用技巧 一 前言 随着 GPT 4 和 DALL E等大型 强大的生成式 AI 模型变得更好 更可用
  • 分布式锁-Redisson

    目录 1 分布式并发问题 2 如何解决分布式并发问题呢 3 使 Redis实现分布式锁 代码实现 4 解决因线程异常导致 法释放锁的问题 5 解决因t1过期释放t2锁的问题 6 看 狗机制 7 分布式锁框架 Redisson 7 1 Red
  • MOS管为什么会存在寄生电感

    说到MOS管的寄生参数 我们一般都只想到mos管各极间的寄生电容 很少会想到MOS管的寄生电感 其实分立的MOS管它是存在寄生电感的 并且栅极 源极和漏极都存在 在一些MOS的数据手册会提到这个寄生电感 那么MOS管寄生电感是怎么产生的呢
  • 如何将VB6项目部署到服务器上,如何将整个VB6项目保存到新文件夹?模块和所有...

    Option Explicit Public VBInstance As VBIDE VBE Public Connect As Connect Private Sub CancelButton Click Connect Hide End
  • 使用oracle的trunc和dbms_random.value随机取n条数据

    场景 今天在review项目代码的时候看到这样一个问题 有一张号码表 每次需要从这样表中随机取6个空闲的号码 也就是每次取出来的6个号码应该都会有所不同 然后我就看到了这样的SQL select t from tel number tbl
  • 个人博客--小小笔记2

    目录 一 博客登录 1 JWT技术 03 md 1 1 jwt介绍 1 2 jwt使用 2 利用token JWT 编写登录方法 2 1实现jwt 2 2jwt存放缓存redis中 以便后期检测是否登录 3 统一错误码 减少大量重复繁琐的返
  • jenkins定时构建时间设置

    举几个例子 每隔5分钟构建一次 H 5 每两小时构建一次 H H 2 每天中午12点定时构建一次 H 12 每天下午18点定时构建一次 H 18 在每个小时的前半个小时内的每10分钟 H 0 29 10 每两小时45分钟 从上午9 45开始
  • 蓝牙 BLE 协议学习: 有关概念介绍

    背景 在学校内就用过蓝牙技术参加过比赛 并拿了奖 而蓝牙作为物联网中比较常见的协议 有必要进行深入的学习 此后的文章会以 ble v4 0 进行学习 介绍 蓝牙技术最初由电信巨头爱立信公司于 1994 年创制 当时是作为 RS232 数据线
  • 学计算机编程我有什么好处,编程是什么 学习编程的好处

    在科技快速发展的今天 很多人都会问编程是什么 学习编程有什么好处 下面有途网小编就带大家整理了一下 希望可以给你们带来帮助 编程是什么 编程是编写程序的中文简称 就是让计算机代为解决某个问题 对某个计算体系规定一定的运算方式 使计算体系按照
  • <QT>把日志输出打印在终端

    在 pro文件中 CONFIG行后添加 console CONFIG c 11 console
  • JSON View谷歌浏览器插件使用

    下载JsonView扩展程序压缩包 解压这个压缩包 打开谷歌浏览器的扩展程序界面 方式一 在谷歌浏览器地址栏中输入 chrome extensions 方式二 加载JsonView扩展程序 选中开发者模式 点击 加载正在开发的扩展程序 选择
  • Matlab在一张图上画多条曲线或分别画

    1 在plot曲线时 有时想在一张图上重合画多条曲线 我们只需要在画图命令之前加上hold on就好 比如 t 1 0 1 10 y1 sin 2 pi t y1 cos 2 pi t plot y1 hold on plot y2 运行结
  • 八种排序算法之六:详解归并排序

    归并排序的核心思想首先可以从一个问题入手 如果我们在排序时遇到以下两个数组有序数组 有没有一种最快速的方法排序呢 对我们而言 把两个数组合成有序数列如果用之前的方法在遍历一遍太过麻烦 最快速度方法应该是像榫卯结构一样直接插入 有了思路 接下
  • perplexity 衡量指标_语言模型评价指标Perplexity

    在信息论中 perplexity 困惑度 用来度量一个概率分布或概率模型预测样本的好坏程度 它也可以用来比较两个概率分布或概率模型 应该是比较两者在预测样本上的优劣 低困惑度的概率分布模型或概率模型能更好地预测样本 困惑度越小 句子概率越大
  • locate find whereis which type

    使用locate命令 遇到了这样的情况 当前目录下有一个文件 而使用这个命令时却查找不到这个文件 上网查了一下 找到了原因 就在下面 1 find find是最常见和最强大的查找命令 你可以用它找到任何你想找的文件 find的使用格式如下
  • 游戏开发unity xlua框架知识系列:使用lua时可以进行的性能优化

    插眼 总结 暂无 参考文章 https blog csdn net weixin 43863320 article details 104069514 https blog csdn net suifcd article details 8
  • JAVA高精度乘法模板(大数乘以一个小数)

    1 思路 高精度乘法是大数乘以一个int型的小数 和前面模拟不同 这里不是一位一位的乘 而是a一位乘以整个数b 当a乘到最高位且没有进位就结束了 2 代码模板 方法一 a为大数 倒序存储 b为int型 返回a b的结果 public sta