【算法】【高精度】acwing算法基础 794. 高精度除法

ops/2025/2/12 7:57:36/

题目

给定两个非负整数(不含前导 0) A,B,请你计算 A/B 的商和余数。

输入格式

共两行,第一行包含整数 A,第二行包含整数 B。

输出格式

共两行,第一行输出所求的商,第二行输出所求余数。

数据范围

1≤A的长度≤100000,1≤B≤10000,B 一定不为 0

输入样例:

7

2

输出样例:

3

1

来源:acwing算法基础 794. 高精度除法


思路(注意事项)

  • 注意r的处理

纯代码

#include<bits/stdc++.h>
using namespace std;vector<int> div(vector<int> A, int b, int &r)
{vector<int> C;r = 0;for (int i = A.size() - 1; i >= 0; i --){r = r * 10 + A[i];C.push_back(r / b);r %= b;}reverse (C.begin(), C.end());while (C.size() > 1 && C.back() == 0) C.pop_back();return C;
}
int main()
{string a;int b;cin >> a >> b;vector<int> A;for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');int r;auto C = div (A, b, r);for (int i = C.size() - 1; i >= 0; i --) cout << C[i];cout << endl << r << endl;return 0; 
}

题解(带注释)

#include<bits/stdc++.h>
using namespace std;// 高精度除法函数:计算一个大整数 A 除以一个整数 b 的商和余数
vector<int> div(vector<int> A, int b, int &r) {vector<int> C; // 存储商的数组r = 0; // 初始化余数为 0// 从高位到低位逐位计算除法for (int i = A.size() - 1; i >= 0; i--) {r = r * 10 + A[i]; // 将当前位的值加入余数C.push_back(r / b); // 计算当前位的商,存入结果数组r %= b; // 更新余数}// 将结果数组反转,恢复从高位到低位的顺序reverse(C.begin(), C.end());// 去掉结果中的前导零(如果结果不是 0)while (C.size() > 1 && C.back() == 0) C.pop_back();return C; // 返回商
}int main() {string a; // 存储输入的大整数(字符串形式)int b;    // 存储输入的整数cin >> a >> b; // 输入大整数和整数vector<int> A; // 存储大整数的每一位(逆序存储)for (int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0'); // 将字符串逆序转换为数字数组int r; // 存储余数auto C = div(A, b, r); // 调用高精度除法函数计算商和余数// 输出商(逆序输出,恢复原始顺序)for (int i = C.size() - 1; i >= 0; i--) cout << C[i];cout << endl;// 输出余数cout << r << endl;return 0;
}

http://www.ppmy.cn/ops/157220.html

相关文章

使用OBS推流,srs服务器播放

说明&#xff1a; ffmpeg可以推流&#xff0c;但是是命令行方式不太友好&#xff0c;还可以使用主流的OBS开源推流软件&#xff0c;可从官网Open Broadcaster Software | OBS 下载最新版本&#xff0c;目前很多网络主播都是用它做直播。该软件支持本地视频文件以及摄像头推流。…

使用wpa_supplicant和wpa_cli 扫描wifi热点及配网

一&#xff1a;简要说明 交叉编译wpa_supplicant工具后会有wpa_supplicant和wpa_cli两个程序生产&#xff0c;如果知道需要连接的wifi热点及密码的话不需要遍历及查询所有wifi热点的名字及信号强度等信息的话&#xff0c;使用wpa_supplicant即可&#xff0c;否则还需要使用wpa_…

活动预告 |【Part 1】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动&#xff0c;了解如何更好地在 Microsoft 365 Defen…

算法与数据结构(爬楼梯)

题目 思路 这道题我们可以使用动态规划。 用f(x)代表爬到第x级台阶的方案数&#xff0c;爬到x级台阶只有两种方法&#xff0c;一种是从前一层&#xff08;x-1&#xff09;爬一层台阶或从前两层&#xff08;x-2&#xff09;爬两级台阶即可。 f(x) f(x-1)f(x-2) 它意味着到…

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点&#xff1a; 1、网站协议-http/https安全差异&#xff08;抓包&#xff09; 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP&#xff1a;使用明文传输&#xff0c;数据在传输过程中可以被…

AI绘画:开启艺术与科技融合的未来之门(10/10)

一、AI 绘画&#xff1a;崭露头角的艺术新星 在科技飞速发展的今天&#xff0c;AI 绘画作为人工智能与艺术领域融合的创新成果&#xff0c;正以惊人的速度改变着我们对艺术创作的认知。短短几年间&#xff0c;AI 绘画从一个新奇的概念迅速演变为大众广泛参与、行业深度应用的热…

Formily 如何进行表单验证

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

如何在RTACAR中配置IP多播(IP Multicast)

一、什么是IP多播 IP多播&#xff08;IP Multicast&#xff09;是一种允许数据包从单一源地址发送到多个目标地址的技术&#xff0c;是一种高效的数据传输方式。 多播地址是专门用于多播通信的IP地址&#xff0c;范围从 224.0.0.0到239.255.255.255 与单播IP地址不同&#x…