算法刷题笔记 高精度除法(C++实现)
文章目录
- 题目描述
- 求解思路
- 实现代码
题目描述
- 给定两个非负整数(不含前导0)
A,B,请你计算A/B的商和余数。
输入格式
- 共两行,第一行包含整数A,第二行包含整数B。
输出格式
- 共两行,第一行输出所求的商,第二行输出所求余数。
数据范围
1 ≤ A的长度 ≤ 100000。1 ≤ B ≤ 10000。- B一定不为 0
求解思路
本题的求解思路仍然是通过编程模拟除法的竖式计算,但是和加减乘法又不一样的地方。由于除法竖式计算中,是从被除数的最高位开始,因此,存放被除数的数组应该用小端存放高位,大端存放低位。最后,和之前的 高精度减法 和 高精度乘法 两道算法题类似,最后的结果需要去除前导零。
实现代码
#include <iostream>
#include <vector>
using namespace std;vector<int> div(const vector<int>& a, const int& b)
{vector<int> result;int jinwei(0);for(int i(0); i < a.size(); ++i){int beichushu = a[i] + 10 * jinwei;result.push_back(beichushu / b);jinwei = beichushu % b;}result.push_back(jinwei);return result;
}int main(void)
{//变量定义部分string a;int b;vector<int> a_vector;//变量输入部分cin >> a >> b;for(int i(0); i < a.length(); ++i) a_vector.push_back(a[i] - '0');//除法运算并去除前导零部分vector<int> result = div(a_vector, b);while(result[0] == 0 && result.size() > 2) result.erase(result.begin());//变量输出部分for(int i(0); i < result.size() - 1; ++i) cout << result[i];cout << endl << result[result.size() - 1];return 0;
}
注意事项:
- 本题中要求同时输出商和余数,但是C++中只能一次返回一个变量,所以本题中将返回向量的最后一个元素设置为余数。实际使用过程中,可以为
div函数传入一个新的整数引用类型的参数r,这样,在div函数中修改r,则主函数中的r的值也会随之变化,从而解决了一次只能返回一个值的问题。
相关文章:
算法刷题笔记 高精度除法(C++实现)
文章目录 题目描述求解思路实现代码 题目描述 给定两个非负整数(不含前导0)A,B,请你计算 A/B 的商和余数。 输入格式 共两行,第一行包含整数A,第二行包含整数B。 输出格式 共两行,第一行输…...
按月爬取天气数据可视化展示
从天气网分析,可以查询每个月的天气情况,这里按照url规则,传入年月,获取数据,最后进行可视化展示,最终效果: 下面是获取过程: 第一步: import requestsdef get_weather(month):url = f"https://lishi.tianqi.com/nanning/{month}.html"response = reques…...
VMware安装Ubuntu系统(超详细)
一.Ubuntu官网下载镜像 Ubuntu官网:Enterprise Open Source and Linux | Ubuntu 二.安装Ubuntu系统 选择文件->创建虚拟机新建虚拟机(ControlN),这里直接选择典型即可 选择稍后安装系统 选择linux Ubuntu 64位 填写虚拟机名称…...
数据清洗操作及众所周知【数据分析】
各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 前面的博客 数据分析—技术栈和开发环境搭建 …...
炫酷gdb
在VS里面调试很方便对吧?(F5直接调试,F10逐过程调试--不进函数,F11逐语句调试--进函数,F9创建断点),那在Linux中怎么调试呢? 我们需要用到一个工具:gdb 我们知道VS中程…...
windows 7 10 11快捷键到启动页面
1.快速打开用户启动文件夹 shell:startup 方式2:快速打开系统启动文件夹 shell:Common Startup shell:Common Startup...
[处理器芯片]-6 超标量CPU实现之浮点运算
1 浮点运算单元FPU 超标量CPU中的浮点运算单元是专门处理浮点数运算的关键组件。浮点运算单元的设计涉及多个复杂的子模块和技术,以保证高效、准确地执行浮点数的加减法、乘法、除法、平方根等操作。 1)浮点数术语 浮点数通常采用IEEE 754标准表示&…...
又有人叫嚣:AI取代前端,来给你几张图,看能不能憋死AI。
总有自媒体人,为了些许流量,在大放厥词,说截个图给AI,AI就能输出前端代码,这是啥都敢说,吹牛不上税。 我来给你几张贝格前端工场日常接的大数据项目相关的图,你让AI生成代码,取代前…...
ISCC2024个人挑战赛WP-WEB
(非官方解,以下内容均互联网收集的信息和个人思路,仅供学习参考) 还没想好名字的塔防游戏 GET /world.js HTTP/1.1 Host: 101.200.138.180:17345 Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,i…...
Android 使用 adb 列出设备上所有危险权限
步骤1:确定 Android SDK 位置 打开 Android Studio 的设置,并来到 Languages & Frameworks › Android SDK 处: 这里可以看到 Android SDK 目录的位置: 例如:/Users/admin/Library/Android/sdk。 复制这个路径&am…...
Spring AOP源码分析
#### AOP(面向切面编程)作用及其优势 作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强(通知) 优势:减少重复代码,提高代码复用性,提高代码可维护性…...
[LLM]从GPT-4o原理到下一代人机交互技术
一 定义 GPT-4o作为OpenAI推出的一款多模态大型语言模型,代表了这一交互技术的重要发展方向。 GPT-4o是OpenAI推出的最新旗舰级人工智能模型,它是GPT系列的一个重要升级,其中的"o"代表"Omni",中文意思是“全…...
【Spring】AOP——通知(Advice)
1、通知(Advice) 1.1简介 在AOP中,通知(Advice)是切面(Aspect)中的一部分,用于定义在连接点(Joinpoint)处应该执行的操作。通知类型可以在AOP框架中配置和使…...
python中的一些基础概念
在python中整型数据可以和浮点型数据相加,在python中字符串数据可以进行相加, 在python中整型数据可以和布尔类型进行算术运算。此时True当做1,False当做0但是这样的操作是没有意义的, python中只有字符串类型没有字符类型&…...
8.Redis之hash类型
1.hash类型的基本介绍 哈希表[之前学过的所有数据结构中,最最重要的] 1.日常开发中,出场频率非常高. 2.面试中,非常重要的考点, Redis 自身已经是键值对结构了Redis 自身的键值对就是通过 哈希 的方式来组织的 把 key 这一层组织完成之后, 到了 value 这一层~~ value 的其中…...
Edge浏览器
微软 Edge 是由微软开发的网络浏览器,它是 Windows 10 操作系统的默认浏览器,取代了之前的 Internet Explorer。Edge 浏览器在设计上注重性能、安全性和易用性,同时也提供了许多实用的功能,如内置笔记、阅读视图、集成的语音助手等…...
springboot项目中图片上传之后需要重启工程才能看到图片?
需求背景 最近在做一个用户自定义上传头像的小需求,用户上传头像然后需要立马回显。 需求是很常见的、正当的需求。如果不使用到对象存储这类服务,我们把用户头像的图片文件仅存在本地就可以了。我们在开发的过程中为了工程管理方便通常下意识会将图片…...
打卡信奥刷题(20)用Scratch图形化工具信奥B3756 [信息与未来 2021] 幸运数字
本题的基础是进制转换,关于2进制转换可以参考打卡信奥刷题(19)用Scratch图形化工具信奥B3972 [语言月赛 202405] 二进制 题解 知道了2进制,来实现5进制、7进制、9进制是一样的。 [信息与未来 2021] 幸运数字 题目描述 如果⼀个…...
Stream流模式通信及示例
Stream流模式通信是指在计算机网络中,数据作为连续的字节流传输而不是独立的数据包。它是一种面向连接的通信方式,常见于TCP(传输控制协议)。以下是Stream流模式通信的基本概念和一个简单的示例。 基本概念 面向连接࿱…...
从0开始学统计-t分布
1.t分布是如何被发现的? t分布最早由英国统计学家威廉塞弗顿(William Sealy Gosset)在1908年提出。塞弗顿是爱尔兰的一名酿酒厂的统计学家,他的工作需要对小样本数据进行分析。由于当时样本量较小(通常小于30…...
抖音数字资产管理方法论:构建个人内容沉淀系统的技术实践
抖音数字资产管理方法论:构建个人内容沉淀系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
IPFS去中心化存储实战指南:黑马程序员音乐播放器项目开发完整教程
IPFS去中心化存储实战指南:黑马程序员音乐播放器项目开发完整教程 【免费下载链接】BlockChain 黑马程序员 120天全栈区块链开发 开源教程 项目地址: https://gitcode.com/gh_mirrors/blockchain95/BlockChain 你是否想过如何构建一个真正去中心化的音乐播放…...
UE4动画蓝图实战:用双骨骼IK节点搞定手部穿模,附完整蓝图节点截图
UE4动画蓝图实战:双骨骼IK节点解决手部穿模的完整指南在角色动画开发中,手部穿模问题堪称"视觉杀手"。想象一下精心设计的角色挥拳时,拳头直接穿过墙壁或敌人身体——这种违和感足以毁掉整个场景的沉浸感。本文将彻底解决这个痛点&…...
DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉!
更多请点击: https://kaifayun.com 第一章:DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉! 当 DeepSeek 的系统设计辅助能力突然变“笨”——接口建议频繁失准、上下文感知错乱、生成代码无法通过基础编…...
信息系统项目管理师核心知识点精讲
一、项目整合管理(重点:项目章程与项目管理计划) 知识点详解: 项目整体管理是项目管理知识体系的核心,它确保项目各要素协调统一。在考试中,特别要掌握项目章程和项目管理计划的区别与联系。 项目章程是项目的“出生证明”,由项目发起人发布。它正式授权项目,赋予项…...
别再死记硬背SMO公式了!用Python手写一个SVM分类器,带你一步步拆解SMO核心逻辑
用Python手写SVM分类器:代码驱动理解SMO算法核心在机器学习领域,支持向量机(SVM)以其优秀的分类性能和坚实的数学基础著称。然而,许多学习者在理解其核心算法——序列最小优化(SMO)时,往往被复杂的数学推导所困扰。本文将采用一种…...
巧用对称性与平均值原理:低成本实现高精度电阻分压器校准
1. 项目概述:用数学思维突破测量设备的精度极限在电子实验室里捣鼓精密电路,尤其是涉及到电压基准、信号调理或者高精度ADC前端时,一个绕不开的坎就是精密分压器。你可能在设计一个需要0.1%甚至更高精度的分压网络,但手头的万用表…...
LizzieYzy:你的智能围棋教练,让AI分析变得简单有趣 [特殊字符]
LizzieYzy:你的智能围棋教练,让AI分析变得简单有趣 🎯 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 还在为复盘找不到关键点而烦恼吗?想提升棋力却…...
flameshow性能优化技巧:如何快速定位Go程序中的CPU热点
flameshow性能优化技巧:如何快速定位Go程序中的CPU热点 【免费下载链接】flameshow A terminal Flamegraph viewer. 项目地址: https://gitcode.com/gh_mirrors/fl/flameshow 🔥 想要快速定位Go程序中的性能瓶颈吗?flameshow是一个强大…...
ZMJS,把 JavaScript 解释器放进 SAP ABAP 应用服务器之后,很多扩展思路会变得不一样
我今天看这个 oisee/zmjs 仓库时,最吸引人的不是它把 JavaScript 语法做进了 ABAP,而是它选择了一条非常 SAP 的路线,纯 ABAP、无外部依赖、无 Kernel Module、以类和接口的形式运行在 SAP 应用服务器内部。仓库自己的定位很直接,ZMJS 是一个面向 SAP ABAP 的 Mini JavaScr…...
