【7. 高精度除法】

简介: 思路:> - 高精度整数除以低精度的整数,商为C,余数为r。> - 从高位依次除以低精度整数。商(C)存在数组中,`r * 10 + 后一位`,继续除以低精度整数。一直循环结束。> - 去掉前导0

高精度除法

思路:

  • 高精度整数除以低精度的整数,商为C,余数为r。
  • 从高位依次除以低精度整数。商(C)存在数组中,r * 10 + 后一位,继续除以低精度整数。一直循环结束。
  • 去掉前导0

步骤:

  1. 为了和之前的高精度加法、减法、乘法模板一致,这里也是采用倒序存储,唯一不同的点是,这里是从高位进行运算,而之前都是从低位进行运算
  2. 设置余数,初始值 为0,高精度整数从高位依次除以低精度整数,商(C)存在数组中,余数 r * 10 + 后一位,继续运算。
  3. 进行翻转(之前高精度整数 123 + 10,倒序存放在数组中,从低位运算 321 + 01。而乘法需要从高位运算,所以需要翻转一下 )
  4. 去掉前导 0

    1. 倒序打印

    举例1661149687439.png

代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

// A / b,商是C, 余数是r
vector<int> div(vector<int> &A, int b , int &r) //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();   //去掉前导0
   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 --) printf("%d",   C[i]);
   cout << endl << r <<endl;
}
目录
相关文章
|
算法 C++ 索引
【算法】——全排列算法讲解
【算法】——全排列算法讲解
1151 0
|
前端开发 JavaScript 测试技术
深入理解Web3:构建去中心化应用的未来
本文将探讨Web3技术的核心原理及其在构建去中心化应用(DApps)中的应用。我们将从Web3的定义开始,深入到其背后的区块链技术,智能合约,以及如何通过使用现代编程语言和框架实现去中心化应用的开发。此外,本文还将探讨当前Web3生态系统中面临的挑战和机遇,为读者提供一个全面的Web3技术概览,旨在启发开发者和技术爱好者探索去中心化世界的无限可能。
|
机器学习/深度学习 自然语言处理 数据可视化
DeepSeek生成模型(Generative Models)基础与实践
生成模型(Generative Models)是能够生成新数据的机器学习模型,广泛应用于图像和文本生成、数据增强等场景。通过学习数据分布,生成模型可创建与训练数据相似的新样本。DeepSeek提供了强大的工具和API,帮助高效构建和训练生成模型。本文将详细介绍使用DeepSeek进行生成模型的基础与实践,涵盖变分自编码器(VAE)和生成对抗网络(GAN)的实现,并通过代码示例帮助掌握这些技巧。
|
算法 计算机视觉
非极大值抑制详细原理(NMS含代码及详细注释)
非极大值抑制(Non-Maximum Suppression,NMS)详细原理(含代码及详细注释)
2963 1
非极大值抑制详细原理(NMS含代码及详细注释)
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
584 4
|
机器学习/深度学习 存储
数据结构学习记录——哈夫曼树(什么是哈夫曼树、哈夫曼树的定义、哈夫曼树的构造、哈夫曼树的特点、哈夫曼编码)
数据结构学习记录——哈夫曼树(什么是哈夫曼树、哈夫曼树的定义、哈夫曼树的构造、哈夫曼树的特点、哈夫曼编码)
694 1
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
831 10
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
3715 0
高精度算法(加、减、乘、除,使用c++实现)
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
1817 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
网络协议 Linux C++
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
1481 0

热门文章

最新文章