高精度之加减乘除之多解总结(加与减篇)
开篇总述:精度计算的教学比较杂乱,无系统的学习,且存在同法多线的方式进行同一种运算,所以我写此篇的目的只是为了直指本质,不走教科书方式,步骤冗杂。
一,加法
我在此讲两种方法:
1,首先科普常识:
length()和size()函数不可统计字符型数组大小;sizeof返回的是总数组
2,为什么字符型数组可以直接接收输入而不用索引接收
原因:数组名的隐式转换规则 和 输入函数的设计机制
(1)数组名的隐式转化:
在代码中直接使用字符型数组组名,它会 自动退化为指向数组首元素的指针。
s1
作为指针传递了数组的起始内存地址,输入函数(如 scanf
)会从该地址开始 连续写入字符,直到遇到终止符(如空格、换行或字符串结束符 \0
)
(2)输入函数工作机制:
以 scanf("%s", s1)
为例:
- 按格式读取:
%s
表示按字符串格式读取输入。 - 连续内存写入:
- 从
s1
的起始地址开始,逐个写入字符到s1[0]
,s1[1]
,s1[2]
... - 自动在末尾添加
\0
终止符(因此数组长度需足够大)
- 从
3,为什么其他数组不能一次输入连续读入
- 字符数组的特殊性:
- 字符串本质是 连续的字符序列,天然适合用指针连续操作。
- 输入函数(如
scanf
)专门为字符串设计了%s
格式符。
- 其他类型数组:
- 例如
int a[505]
,每个元素可能需不同格式(如%d
),无法统一连续处理。 - 必须显式指定索引或指针偏移
- 例如
好了,基础知识已经掌握了,让我们直接看代码吧。
法一:
倒置是因为加法是从后往前加的,所以倒置过来在代码里从前往后加模拟,只是换了方向。
此时里面的加法模拟, 我们先不看加号就是这样,e[i] = c[i] + d[i],e数组统计数字总和,每个位数上的数字相加,此时会出现加后为两位数,此时要往后进一位 ,所以有 e[i + 1] = e[i]/ 10;
而原来的位数上保留个位上的数字 所以有 e[i] = e[i] % 10; 但之后进入下一次循环,开始加下一个位数,此时会出现一种情况,在前一位的加法里面,如果有进位发生到此处怎么把进位的数加上,所以此时有了 e[i] += c[i] + d[i] 将之前的进位的情况数字加上。
法二:
只是进位的方式发生改变,此时jw单独设成一个变量,如果前面有jw,在下一次循环加上。
之后循环完毕,看是否还有进位,若还有则总位数加1,将jw变量设在开头代表进位的数字,m数组在函数里面就已经将结果输入完毕,最后只需要传入位数。
最后返回的是运算完成后数字的位数
二,减法
注意:此题重在分析:
1,减是两个数字相减,此时如果第一个数比第二个大,则可以安全相减,若比第二个小,则需要添负号,再把两数反过来相减,这就涉及到数学知识,两个数若相减,前一个数比后一个数小,则它们最后的结果相当于后面大的数减前面小的数,再在前面添负号。
2,而此时,就需要设置一个布尔类型判断两数谁小了。
原题解如下:
此时涉及到字符串的知识
字典序:
字符串比较规则。
字典序的核心规则(以 m > n
为例):
m 和 n 都是字符串,但怎么比较大小
-
从左到右逐字符比较
比较m
和n
的第一个字符:- 如果
m[0]
的ASCII码 大于n[0]
→ 直接判定m > n
为true
。 - 如果 小于 → 判定为
false
。 - 如果 相等 → 继续比较下一个字符。
- 如果
-
若所有字符均相同
- 较长的字符串更大(例如
"hello" > "hell"
)。 - 长度和内容完全相同时 →
m > n
为false
。
- 较长的字符串更大(例如
比较的是字符串里面每个字符的ASCLL编码。
m > n ,此为逐个逐个比较字符串里面逐个的字符编码,看谁先出现大的数,
但是思考
"100"和"99"这类情况,则反而判断出后面比前面大,那该怎么克服呢,只需要按我题解一样先判断长短就行。
ok,结束,下期的事我们下期再聊。
相关文章:

高精度之加减乘除之多解总结(加与减篇)
开篇总述:精度计算的教学比较杂乱,无系统的学习,且存在同法多线的方式进行同一种运算,所以我写此篇的目的只是为了直指本质,不走教科书方式,步骤冗杂。 一,加法 我在此讲两种方法: …...

dify插件接入fastmcp示例
文章目录 1. 使用python完成mcp服务1.1 准备环境(python安装fastmcp)1.2 mcp服务端示例代码1.3 启动mcp服务端 2. dify接入2.1 安装MCP SSE和 Agent 策略(支持 MCP 工具) 插件2.2 dify agent插件配置mcp:2.3 mcp服务配置ÿ…...

c++——二叉树进阶
1. 内容安排说明 二叉树在前面C数据结构阶段已经讲过,本节取名二叉树进阶是因为: 1. map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构 2. 二叉搜索树的特性了解,有助于更好的理解map和set的特性 3. 二叉树中部…...
MySQL 中如何进行 SQL 调优?
在MySQL中进行SQL调优是一个系统性工程,需结合索引优化、查询改写、性能分析工具、数据库设计及硬件配置等多方面策略。以下是具体优化方法及案例说明: 一、索引优化:精准提速的关键 索引类型选择 普通索引:加速频繁查询的列&…...
【C++游戏引擎开发】第33篇:物理引擎(Bullet)—射线检测
一、射线检测核心理论体系 1.1 射线检测的数学基础 1.1.1 参数化射线方程 射线在三维空间中的数学表达采用参数方程: r ( t ) = o + t d ^ ( t ∈ [...

基于flask+pandas+csv的报表实现
基于大模型根据提示词去写SQL执行SQL返回结果输出报表技术上可行的,但为啥还要基于pandas去实现呢? 原因有以下几点: 1、大模型无法满足实时性输出报表的需求; 2、使用大模型比较适合数据量比较大的场景,大模型主要…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)
文章目录 一、QFont常用方法二、常用方法总结1. 基础属性设置2. 高级样式控制3. 序列化与反序列化4. 字体信息获取 三、应用实例 字体类QFont用于设置界面控件上显示的字体,它包含字体名称、字体尺寸、粗体字、斜体字、删除线、上划线、下划线、字体间距等属性。 如…...
北斗导航 | 北斗RTK定位厄待解决的问题,未来发展
北斗RTK(实时动态定位)技术在高精度定位领域已取得显著进展,但仍面临一系列技术挑战和未来发展方向。以下从亟待解决的问题和未来发展趋势两方面进行详细分析: 一、北斗RTK定位亟待解决的核心问题 电离层扰动对定位精度的影响 电离层扰动是当前北斗RTK技术面临的最大自然挑…...

宝塔服务安装使用的保姆级教程
宝塔介绍: 宝塔面板(BT Panel) 是一款 国产的服务器运维管理面板,主要用于简化 Linux/Windows 服务器的网站、数据库、FTP、防火墙等管理操作。它通过图形化界面(Web端)和命令行工具(bt 命令&a…...

Linux平台下SSH 协议克隆Github远程仓库并配置密钥
目录 注意:先提前配置好SSH密钥,然后再git clone 1. 检查现有 SSH 密钥 2. 生成新的 SSH 密钥 3. 将 SSH 密钥添加到 ssh-agent 4. 将公钥添加到 GitHub 5. 测试 SSH 连接 6. 配置 Git 使用 SSH 注意:先提前配置好SSH密钥,然…...
Electron 打包与发布指南:让你的应用运行在 Windows、macOS、Linux
🚀 Electron 打包与发布指南:让你的应用运行在 Windows、macOS、Linux 使用 Electron 开发桌面应用只是第一步,最终我们还需要将应用打包成用户可运行的可执行文件(如 .exe、.dmg、.AppImage),并能在各平台…...

Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析
目录 1.前言 2.正文 2.1状态码 2.2HTTP与HTTPS的关系 2.3SSL协议 2.3.1对称加密 2.3.2非对称加密 2.3.3中间人攻击 2.3.4校验机制 2.3.4.1证书 2.3.4.2数字签名 1. 数字签名的生成过程 2. 数字签名的验证过程 2.4TLS协议(握手过程) 3.小结…...

【基础IO下】磁盘/软硬链接/动静态库
前言: 文件分为内存文件和磁盘文件。磁盘文件是一个特殊的存在,因为磁盘文件不属于冯诺依曼体系,而是位于专门的存储设备中。因此,磁盘文件存在的意义是将文件更好的存储起来,一边后续对文件进行访问。在高效存储磁盘…...

SpringBoot项目容器化进行部署,meven的docker插件远程构建docker镜像
需求:将Spring Boot项目使用容器化进行部署 前提 默认其他环境,如mysql,redis等已经通过docker部署完毕, 这里只讨论,如何制作springboot项目的镜像 要将Spring Boot项目使用docker容器进行部署,就需要将Spring Boot项目构建成一个docker镜像 一、手动…...

【小记】excel vlookup一对多匹配
一个学生报四门课,输出每个学生课程 应用概述操作预处理数据计数指令 COUNTIFS进行一对多匹配 vlookup 应用概述 应用场景:学生报名考试,需要整理成指定格式,发给考试院。 一个学生最多报考四门 格式实例:准考证号 …...

LeetCode热题100 两数之和
目录 两数之和题目解析方法一暴力求解代码 方法二哈希代码 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸🥸 C语言 🐿️🐿️🐿…...
问题解决思路:numpy:DLL load failed
首先明确几点: 1这是在使用anaconda中除开base环境下其他envs时出现的问题 2这不是pytorch版本过高的问题(也可以是) 3这不是pytorch安装错误的问题(也可以是)需要检查是否正确安装 解决思路: 本人遇到…...

[春秋云镜] Brute4Road 仿真场景
文章目录 靶标介绍:知识点约束性委派攻击 外网redis主从复制base64提权 内网搭建代理wpcargo插件漏洞mssql弱口令SweetPotato提权远程桌面连接mimikatz抓取hash约束性委派攻击 参考文章 靶标介绍: Brute4Road是一套难度为中等的靶场环境,完成…...
adb 实用命令汇总
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 基础adb命令 # 重启adb adb kill-server# 查看已连接的设备 adb devices# 进入命令行 adb shell# 使用 -s 参数来指定设备 adb -s <设备序列号> shell…...

鸿蒙系统使用ArkTS开发语言支持身份证阅读器、社保卡读卡器等调用二次开发SDK
har库导入: { "license": "", "devDependencies": {}, "author": "", "name": "entry", "description": "Please describe the basic information.", &qu…...

《Python星球日记》 第54天:卷积神经网络进阶
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、深度CNN架构解析1. LeNet-5(1998)2. AlexNet&#x…...

《AI大模型应知应会100篇》第53篇:Hugging Face生态系统入门
第53篇:Hugging Face生态系统入门 ——从模型获取到部署的全流程实战指南 📌 摘要 在人工智能快速发展的今天,Hugging Face已成为自然语言处理(NLP)领域最具影响力的开源平台之一。它不仅提供丰富的预训练模型、强大…...

【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询
目录 功能简介 一、创建GeoNames账号 1、进入官网 2、创建账号 二、运行代码 weather_runnable.py main.py 运行结果 功能简介 本文主要通过Langchain,结合GeoNames实现了地区温度的实时查询,并通过GPT-4o对温度进行一段简短的描述。 一、创建Ge…...
嵌入式与物联网:C 语言在边缘计算时代的破局之道
引言 在万物互联的 2025 年,全球物联网设备连接数突破 300 亿台,其中 78% 的嵌入式控制系统仍基于 C 语言开发。这种跨越半个世纪的编程语言,正以新的技术形态在智能汽车、工业物联网、边缘计算等领域重塑竞争力。本文通过三个前沿应用场景&…...
《基于人工智能的智能客服系统:技术与实践》
一、引言 在数字化时代,客户服务已成为企业竞争的关键领域之一。随着人工智能(AI)技术的飞速发展,智能客服系统逐渐成为企业提升服务质量和效率的重要工具。智能客服不仅能够快速响应客户咨询,还能通过自然语言处理&am…...
5. HTML 转义字符:在网页中正确显示特殊符号
在 HTML 开发中,我们经常会遇到需要显示特殊字符的情况,比如 <、>、空格或版权符号等。直接输入这些字符可能会导致 HTML 解析错误或显示异常。接下来通过学习 HTML 转义字符(也称为实体字符),将会掌握了如何在网页中正确显示这些特殊符号的方法。 一、为什么需要转…...
基于nodejs + Koa +Nuxt3的订单系统项目实战
以下是一个基于 Node.js Koa Nuxt3 的订单系统项目实战指南,包含关键实现步骤和代码示例: 一、项目架构设计 project/ ├── backend/ # Koa 后端 │ ├── config/ # 配置文件 │ ├── controllers/ # 控制器 │ ├──…...
软件开发者如何转战AI领域
在人工智能(AI)技术迅猛发展的当下,越来越多的软件工程师开始考虑转型进入AI领域。本文将探讨AI软件行业的现状、所需能力,以及普通软件工程师在转型过程中可以借助的技能和需要补充的知识。 AI软件行业的现状 截至2025年&#…...

服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复
服务器存储数据恢复环境&故障: 一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统,存放虚拟机文件,上层一共分了4个卷。 磁盘故障导致存储不可用,且设备已经过保。 服务器存储数据恢复过程…...

JAVA实战开源项目:智能学习平台系统 (Vue+SpringBoot) 附源码
本文项目编号 T 181 ,文末自助获取源码 \color{red}{T181,文末自助获取源码} T181,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...