高精度加法c++

2023-10-31

介绍

当我们加出来是一个特别大的数,开了long long都会爆的时候,我们就会用到高精度加法了。
原题链接

讲解

其实高精度加法就是模拟的竖式运算
高精度加法1.png
竖式运算会出现进位的情况,比如说最高位的这个1是进位,比原来的3位还多出1位,那么我们就应该倒着存储到vector数组中,让数组第0位存储个位。上面的竖式就会变成了269+39(注意2和3是个位)这样这样进位的时候只要push_back一个进位就完成了进位了。

  • 首先输入问题
    输入我们先用字符存储下来,然后就是倒着存储到数组中,让数组的第0位是个位。
  • 然后就是函数体内的了
    • 首先我们保证A数组是位数多那个
    • 注意这里的操作吧,每次C存入一个数组存入一个c%10,然后t/=10代表进位。
    • 注意如果最后t不是0,说明有进位,也要加入到c数组里面。

源码

#include <bits/stdc++.h>

using namespace std;

vector<int> add(vector<int> &A, vector<int> &B)
{
    if (A.size() < B.size()) return add(B, A);

    vector<int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i ++ )
    {
        t += A[i];
        if (i < B.size()) t += B[i];
        C.push_back(t % 10);
        t /= 10;
    }

    if (t) C.push_back(t);
    return C;
}

int main()
{
    string a, b;
    cin >> a >> b;
    
    vector<int> A, B;
    
    for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');
    
    for (int i = b.size() - 1; i >= 0; i -- ) B.push_back(b[i] - '0');
    
    auto C = add(A, B);
    
    for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
    
    cout << endl;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高精度加法c++ 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析

随机推荐

  • 猿人学APP逆向第一题

    一 抓包 加密参数sign 二 静态分析 2 1搜索app1直接直接定位到请求位置 查看用例直接定位到加密位置 可以直接看到Sign sign 方法就是加密函数 2 2frida hook加密函数 一目了然 第一题太简单了就不过多分析 直接
  • JavaScript数据结构之栈

    JavaScript 数据结构之栈思维导图 JavaScript 数据结构之栈源码
  • MUI蓝牙打印(Android)

    MUI蓝牙打印 Android 使用MUI开发手机APP时使用蓝牙打印功能可能较少使用 MUI官方并为集成蓝牙打印功能 而且似乎对iPhone蓝牙打印的类库支持也不够完善 忙完一阶段后回顾下之前的工作 想想蓝牙打印功能折腾了够长时间了 写这
  • Django数据库orm操作以list形式获取数据库中某列所有值

    文章目录 问题 解决办法 方式一 方式二 方式三 写在最后 问题 如图所示 Django数据库中存储如下字段 这是在前端渲染出的数据 现在的需求是 要把factory这一列数据从后端数据库提取出来得到一个list方便后续的 select o
  • 几何画笔

    在看书时看到了这个概念 画笔可以分为几何画笔和装饰画笔 目前从CSDN以及MSDN上大致看了一下几何画笔的用法 代码如下 HPEN hPen NULL DWORD dwStyle PS GEOMETRIC PS DASHDOT PS END
  • HIT SC ADT and OOP

    ADT Abstract Data Types 在上学期的数据结构中我们已经接触过ADT 抽象数据型 抽象数据型是一个数学模型和在该模型上定义的操作的集合 在软件构造中ADT概念也类似 不过多了些值得注意的点 首先看一下MIT官网列出的几个
  • metasploit

    概念 Metasploit是一款开源的安全漏洞检测工具 可以帮助安全和IT专业人士识别安全性问题 验证漏洞的缓解措施 并管理专家驱动的安全性进行评估 提供真正的安全风险情报 这些功能包括智能开发 代码审计 Web应用程序扫描 社会工程 团队
  • 为什么重写equals还要重写hashcode

    为什么重写equals还要重写hashcode 1 简介 equals和hashcode都属于Object类的方法 其中hashcode为本地方法 object中equals是比较是否为同一对象 public boolean equals
  • Java集成微信小程序生成二维码传回前端,提供下载按钮

    1 后端调用方法获取AccessToken的工具类 import com alibaba fastjson2 JSON import com alibaba fastjson2 JSONObject import org springfra
  • 《数据结构初阶》用队列实现栈&&用栈实现队列的细致解析

    纵有千古 横有八方 目录 一 本章重点 二 队列实现栈 三 栈实现队列 四 解题思路总结 一 本章重点 用两个队列实现栈 用两个栈实现队列 解题思路总结 二 队列实现栈 我们有两个队列 入栈数据1 2 3 可以将数据入队列至队列一或者队列二
  • 如何让微pe上网_如何用U盘重装系统

    现如今电脑普及程度已经涉及到我们生活中的方方面面 日常生活和工作都离不开电脑 作为一个Window使用者 遇到问题时 能自己独立重装操作系统 是一件很有成就的事情 U盘重装系统是目前比较流行和简单的方法 比过去的使用光盘更加简易 小白也能轻
  • JavaScript-运算符篇

    目录 一 算数运算符 二 递增和递减运算符 1 前置递增 2 后置递增 三 比较运算符 四 逻辑运算符 1 逻辑与 2 逻辑或 3 逻辑非 5 短路运算 逻辑中断 6 赋值运算符 7 运算符优先级 8 流程控制 1 顺序机构 2 分支结构
  • 小朋友高矮排列-华为OD

    题目描述 现在有一队小朋友 他们高矮不同 我们以正整数数组表示这一队小朋友的身高 如数组 5 3 1 2 3 我们现在希望小朋友排队 以 高 矮 高 矮 顺序排列 每一个 高 位置的小朋友要比相邻的位置高或者相等 每一个 矮 位置的小朋友要
  • java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    错误如下所示 查了一下发现是配置文件中的数据库密码错了 并且在代码生成器中 也要修改数据库 在查资料时发现 如果出现的错误是using password YES 那么应该是密码输错了 java sql SQLException Access
  • 深度学习实战12(进阶版)-利用Dewarp实现文本扭曲矫正

    大家好 我是微学AI 今天给大家介绍一下深度学习实战12 进阶版 利用Dewarp实现文本扭曲矫正 我们在生活中会看到一些拍摄扭曲的图片 我们在通过OCR识别的时候 因为扭曲的厉害 而无法识别 我们需要对图片进行处理 文件图像的变形有扭曲
  • HarmonyOS学习路之开发篇—多媒体开发(媒体数据管理开发)

    一 媒体数据管理开发概述 HarmonyOS媒体数据管理模块支持多媒体数据管理相关的功能开发 常见操作如 获取媒体元数据 截取帧数据等 在进行应用的开发前 开发者应了解以下基本概念 PixelMap PixelMap是图像解码后无压缩的位图
  • Javascirp异步编程

    在上一篇彻底弄清Javascirpt中的同步和异步一问当中 介绍了Javascirp代码执行的概念 同步和异步的原理 学习过Javascript语言的同学都知道 从Javascript诞生之日起 就是一门单线程 非阻塞的脚本语言 Javas
  • ArcGIS Server开发Web GIS新手体验

    原创作者 lt 不详 gt 一 前述 原创作品网址 http www vscodes com article 3 2379 html 以下针对于windows操作系统 net开发环境 ArcGIS Server是ESRI公司最新推出的服务器
  • java一行代码实现集合写入Excel表格生成数据

    这里使用maven构建项目 导入依赖
  • 高精度加法c++

    介绍 当我们加出来是一个特别大的数 开了long long都会爆的时候 我们就会用到高精度加法了 原题链接 讲解 其实高精度加法就是模拟的竖式运算 竖式运算会出现进位的情况 比如说最高位的这个1是进位 比原来的3位还多出1位 那么我们就应该