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

高精度(加减乘除)

高精度算法出现的原因

当参与运算的数的范围大大的超出了标准数据类型,如int(-2147483648 ~ 2147483647)或者long long的范围,就需要使用高精度算法来进行数的运算。高精度运算的特点是代码长度比较长,本质是对数学运算过程的模拟。既然不能使用标准数据类型,所以考虑使用字符串或者数组来存储这类大数据。

常用的一些最大值符号

  • 0x7f7f7f7f —— 比int的最大值小一点
  • 0x3f3f3f3f —— 比int的最大值的一半小一点
  • INT_MAX —— int的最大值
#include <iostream>
#include <climits>
using namespace std;int main()
{cout << 0x7f7f7f7f << endl; //21 3906 2143cout << 0x3f3f3f3f << endl; //10 6110 9567cout << INT_MAX << endl;    //21 4748 3647return 0;
}

高精度加法分析

对于小数据,125 + 25 = 150,其运算过程如下:
在这里插入图片描述
由于涉及到进位,所以在计算机进行运算的时候,会采取倒序运算的方式。如果在运算时需要进位,则向下一位进位即可。
在这里插入图片描述
最后,需要倒序输出结果 :051,得到150,即最后的答案

高精度加法运算步骤:

  • 使用字符数组存储两个较大的数
  • 把两个数逆序转化为整数数组
  • 诸位相加运算,在运算的时候处理进位。
  • 相加之后的结果最多比原来较长的数多一位,最后逆序输出即可

高精度加法模板

待更新

高精度减法分析

在高精度减法中,需要注意:

  • 如果a < b,则需要先交换a与b,最后在输出结果前加上负号
  • 在高精度计算时,如果a[i] < b[i],则需要先向高位借一位

高精度减法模板

待更新

高精度乘法分析

在日常生活中,计算两个数字相乘,其过程是什么样子的呢?
在这里插入图片描述
通过上图,不难看出,1234 * 32 = 39488。那么,如何使用计算机来模拟上述的乘法运算过程是实现高精度乘法的核心所在。如果将数字全部转化为字符,那么上图过程则抽象为下图所示:
在这里插入图片描述
通过上图,不难发现下面的对应关系:('A —> B’表示A与B有关)

A[1] * B[1] ——> C[1]
A[2] * B[1] ——> C[2]
A[3] * B[1] ——> C[3]
A[4] * B[1] ——> C[4]A[1] * B[2] ——> C[2]
A[2] * B[2] ——> C[3]
A[3] * B[2] ——> C[4]
A[4] * B[2] ——> C[5]

通过观察总结,发现下面规律:
A[i] * B[j] —> C[i + j - 1]
高精度算法核心代码:

c[i + j - 1] += (a[i] * b[j]);
c[i + j] += c[i + j - 1] / 10;
c[i + j - 1] %= 10;

最后需要注意的是,在高精度乘法中,得到的结果可能是多个0(如下图所示),所以删除前导0需要用while循环而不是if语句。
在这里插入图片描述

高精度乘法模板

待更新

高精度除法分析

高精度除法模板

待更新

相关文章:

高精度(加减乘除)

高精度算法出现的原因 当参与运算的数的范围大大的超出了标准数据类型&#xff0c;如int&#xff08;-2147483648 ~ 2147483647&#xff09;或者long long的范围&#xff0c;就需要使用高精度算法来进行数的运算。高精度运算的特点是代码长度比较长&#xff0c;本质是对数学运算…...

java企业数据管理系统

项目介绍 此项目为企业数据管理系统的后端部分&#xff0c;前端部分请参考vue-admin&#xff0c;项目实现了菜单管理、用户管理、角色管理和权限管理四个基础模块&#xff0c;前端菜单管理结合动态路由可自由添加菜单。结合Shiro权限管理实现了菜单和按钮的权限控制。 ❝ 前端…...

【云原生进阶之PaaS中间件】第二章Zookeeper-3.1分布式架构介绍

1 分布式架构详解 1.1 分布式发展历程 1.1.1 单点集中式 特点&#xff1a;App、DB、FileServer都部署在一台机器上。并且访问请求量较少 1.1.2 应用服务和数据服务拆分 特点&#xff1a;App、DB、FileServer分别部署在独立服务器上。并且访问请求量较少 1.1.3 使用缓存改善…...

2023-09-11力扣每日一题

链接&#xff1a; 630. 课程表 III 题意 一个课程花费ai天&#xff0c;需要在bi天之前修好才算成功&#xff0c;求最多能修几个课 解&#xff1a; ddl越靠后的应该越晚做&#xff0c;所以先按照b排序&#xff08;这还用问为什么吗&#xff1f; 然后通过维护一个优先队列存…...

windows10使用wheel安装tensorflow2.13.0/2.10.0 (保姆级教程)

安装过程 安装虚拟环境安装virtualenv安装满足要求的python版本使用virtualenv创建指定python版本的虚拟环境 安装tensorflow安装tensorflow-docs直接下载使用wheel下载 在VSCode编辑器中使用虚拟环境下的python解释器&#xff0c;并使用tensorflow常见错误 注意&#xff1a; t…...

【LeetCode与《代码随想录》】贪心算法篇:做题笔记与总结-JavaScript版

代码随想录 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 文章目录 455. 分发饼干376. 摆动序列53. 最大子数组和122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II1005. K 次取反后最大化的数组和134. 加油站135. 分发糖果&#xff08;困难&#…...

Http客户端OkHttp的基本使用

简介 OkHttp是一个强大的开源HTTP客户端&#xff0c;它被广泛用于Android和Java应用程序中。OkHttp具有简单易用的API&#xff0c;提供了许多高级功能&#xff0c;如连接池、请求压缩和缓存等。 依赖 要使用OkHttp&#xff0c;需要在项目的构建文件中添加以下依赖&#xff1…...

认识网线上的各种参数标号

最近工作需要&#xff0c;接触了很多不同类型的网线&#xff0c;为了能够区分不同型号的网线&#xff0c;特意做一篇笔记用来学习&#xff0c;如有记录有误之处&#xff0c;欢迎大家指正~初步认识网线 常用的网络电缆有三种&#xff1a;双绞线、同轴电缆和光纤电缆&#xff08…...

软件测开记录(一)

知识点汇总 14&#xff1a;00面试&#xff0c;14&#xff1a;06就出来了&#xff0c;问的问题有点变态。。。 python自动化测试学习路线&#xff08;从入门到精通&#xff09; 单元知识点 测试常用工具 常用的客户端和服务器端开发和测试工具 服务器与客户端常用测试工具与…...

基数排序之代码解析

基数排序是生活中咱们写程序用的比较少的排序&#xff0c;但是这个排序比较巧妙&#xff0c;今天就给大家讲一讲&#xff0c;原理都在代码里面&#xff0c;下面会给一些解释。 import java.util.Arrays;public class Code04_RadixSort {// only for no-negative valuepublic s…...

使用C语言EasyX 创建动态爱心背景

简介 在计算机图形学的世界中&#xff0c;有很多方法可以使程序的界面更加吸引人。在本篇博客中&#xff0c;我将向大家介绍如何使用 EasyX 图形库在 C 中创建一个动态的爱心背景。这不仅是一个简单的动画效果&#xff0c;它还包括背景的星星、旋转的心形以及一个美观的背景渐…...

springboot redisTemplate.opsForValue().setIfAbsent返回null原理

一、版本 springboot版本&#xff1a;spring-boot-starter-data-redis 2.1.6 redisson版本&#xff1a;redisson-spring-boot-starter 3.11.5 二、场景 Boolean res redisTemplate.opsForValue().setIfAbsent("key","value");以上代码同一时间多次执行…...

Python调用Jumpserver的Api接口增删改查

引言 Jumpserver是一款强大的堡垒机系统&#xff0c;可以有效管理和控制企业内部服务器的访问权限&#xff0c;提高网络安全性。本文将介绍如何使用Python编程语言&#xff0c;结合Jumpserver提供的API接口&#xff0c;实现对跳板机的管理和操作。 1、什么是Jumpserver&#…...

后端入门教程:从零开始学习后端开发

1. 编程基础 首先&#xff0c;作为一名后端开发者&#xff0c;你需要掌握至少一门编程语言。Python是一个很好的选择&#xff0c;因为它易于学习且功能强大。让我们从一个简单的示例开始&#xff0c;在控制台输出 "Hello, World!"。 2. 学习Web基础 了解Web开发基…...

无涯教程-JavaScript - DB函数

描述 DB函数使用固定余额递减法返回指定期间内资产的折旧。 语法 DB (cost, salvage, life, period, [month])争论 Argument描述Required/OptionalCostThe initial cost of the asset.RequiredSalvageThe value at the end of the depreciation (sometimes called the salv…...

2023年财务顾问行业研究报告

第一章 行业概况 1.1 定义及分类 财务顾问&#xff08;Financial Advisor&#xff0c;FA&#xff09;也被称为融资顾问&#xff0c;主要为创业公司提供投资和融资的专业服务。他们在创业者和投资者之间扮演着至关重要的中介角色&#xff0c;为双方搭建桥梁&#xff0c;确保投…...

2023SICTF ROUND2 baby_heap

附件&#xff1a;baby_heap libc版本&#xff1a;glibc2.23 思路一&#xff1a;通过house of orange泄露libc地址&#xff0c;然后通过unsorted bin attack将main_arena88地址写入到chunk_ptr&#xff08;也就是申请出来的堆数组&#xff09;中&#xff0c;这时候unsorted bi…...

buuctf crypto 【密码学的心声】解题记录

1.打开可以看到一个曲谱 2.看到曲谱中的提示埃塞克码可以想到ascii码&#xff0c;没有八可以联想到八进制&#xff0c;而八进制又对应着三位的二进制&#xff0c;然后写个脚本就好了 oct [111,114,157,166,145,123,145,143,165,162,151,164,171,126,145,162,171,115,165,143,…...

论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)

文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 背景2.1 目标与非目标攻击2.2 最小化损失2.3 白盒威胁模型2.4 黑盒威胁模型 3 简单黑盒攻击3.1 算法3.2 Cartesian基3.3 离散余弦基3.4 一般基3.5 学习率 ϵ \epsilon ϵ3.6 预算 1 概述 1.1 要点 题目&#xff1a;简单黑盒对抗攻…...

41 个下载免费 3D 模型的最佳网站

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 1. Pikbest Pikbest是一个设计资源平台&#xff0c;提供超过3万件创意艺术品。您可以在Pikbest上找到设计模板&#xff0c;演示幻灯片&#xff0c;视频和音乐等。您可以找到不同的3D模型&#xff0c;例如婚礼装饰&…...

OpenClaw浏览器自动化实战:百川2-13B驱动的智能信息检索系统

OpenClaw浏览器自动化实战&#xff1a;百川2-13B驱动的智能信息检索系统 1. 为什么需要自动化信息检索 作为一名技术研究者&#xff0c;我每天需要跟踪大量行业动态和论文进展。传统的手动搜索-阅读-摘录流程效率极低&#xff0c;经常出现以下痛点&#xff1a; 重复劳动&…...

绝地求生罗技鼠标宏配置全攻略:从零到精通的压枪优化指南

绝地求生罗技鼠标宏配置全攻略&#xff1a;从零到精通的压枪优化指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中的枪口…...

从‘能工作’到‘优秀’:手把手教你为你的Buck/Boost电路挑选和优化MOSFET驱动

从‘能工作’到‘优秀’&#xff1a;手把手教你为Buck/Boost电路挑选和优化MOSFET驱动 在开关电源设计中&#xff0c;MOSFET的选择和驱动优化往往是决定整体效率的关键因素。许多工程师能够设计出"能工作"的电路&#xff0c;但要达到"优秀"的性能指标&…...

告别手动标注!用RexUniNLU零样本模型自动提取电商评论情感

告别手动标注&#xff01;用RexUniNLU零样本模型自动提取电商评论情感 1. 电商评论分析的痛点与解决方案 电商平台每天产生海量用户评论&#xff0c;这些评论蕴含着宝贵的用户反馈和市场洞察。传统的情感分析方法通常面临两大难题&#xff1a; 标注成本高&#xff1a;需要大…...

降AIGC哪家强?2026零成本保姆级教程:DeepSeek/Kimi/豆包专属降重指令实测与差异解析

很多时候大学生写论文逻辑太严谨、话术太规范&#xff0c;反而会导致AI率过高&#xff0c;且一旦AI率过高&#xff0c;轻则退回重改&#xff0c;重则取消答辩资格&#xff0c;这后果谁都担不起。 为了帮大家有效降低aigc率&#xff0c;这周我专门针对目前市面上最主流的三款大…...

OpenClaw+Qwen3-VL:30B:个人多模态AI助手全流程

OpenClawQwen3-VL:30B&#xff1a;个人多模态AI助手全流程 1. 为什么选择这个组合&#xff1f; 去年冬天&#xff0c;我发现自己陷入了一个典型的知识工作者困境&#xff1a;每天要处理大量图片资料&#xff08;产品截图、会议白板照片、技术文档截图&#xff09;&#xff0c…...

OpenClaw自动化办公:nanobot镜像处理Excel与PPT文件

OpenClaw自动化办公&#xff1a;nanobot镜像处理Excel与PPT文件 1. 为什么选择OpenClaw处理办公文档&#xff1f; 上周五下午5点&#xff0c;当我面对第7个需要合并的Excel报表时&#xff0c;手指已经因为重复的复制粘贴动作开始发麻。作为团队里负责月度数据汇总的"表哥…...

SVPWM/AZSPWM的simulink仿真 AZSPWM(Advanced Zero Se...

SVPWM/AZSPWM的simulink仿真 AZSPWM&#xff08;Advanced Zero Sequence Pulse Width Modulation&#xff0c;先进零序脉宽调制&#xff09;是一种改进的脉宽调制技术&#xff0c;主要应用于三相逆变器中&#xff0c;通过引入零序分量来优化输出电压的波形和性能。 AZSPWM的目标…...

COMSOL中固态锂离子电池的电-热-力耦合仿真:考虑扩散诱导应力、热应力及外部挤压应力的影响

COMSOL 固态锂离子电池仿真 固态锂离子电池电-热-力耦合仿真&#xff0c;考虑了扩散诱导应力&#xff0c;热应力以及外部挤压应力。固态电池鼓包变形的时候&#xff0c;工程师老张盯着屏幕上的应力云图直挠头。这玩意儿明明充满电就膨胀&#xff0c;放完电又缩回去&#xff0c;…...

从‘丐版’到‘神板’:深度拆解Raspberry Pi Zero 2 W的散热设计与性能压榨指南

从‘丐版’到‘神板’&#xff1a;深度拆解Raspberry Pi Zero 2 W的散热设计与性能压榨指南 当一款信用卡大小的开发板搭载四核处理器时&#xff0c;散热与性能的平衡便成为硬件极客们最热衷的挑战。Raspberry Pi Zero 2 W以不到15美元的定价&#xff0c;却藏着令人惊喜的工程智…...