【模板】高精度加高精度

2023-11-07

下面这题是高精度加高精度的模板题:

洛谷 P1601 A+B Problem(高精)

1.数组

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 100010;

char A[N], B[N];
int a[N], b[N], c[N];

int main()
{
    cin >> A >> B;
    
    int la = strlen(A), lb = strlen(B);
    
    // 逆序存储
    for (int i = 0; i < la; i++)
    {
        a[la - i] = A[i] - '0';
    }
    
    // 逆序存储
    for (int i = 0; i < lb; i++)
    {
        b[lb - i] = B[i] - '0';
    }
    
    // 相加之后的结果最多比原来较长的数多一位
    int lc = max(la, lb) + 1;
    
    for (int i = 1; i <= lc; i++)
    {
        c[i] += a[i] + b[i]; // 逐位相加
        c[i + 1] = c[i] / 10; // 向高位进位
        c[i] %= 10;
    }
    
    // 删除前导0
    while (lc > 1 && c[lc] == 0)
    {
        lc--;
    }
    
    // 逆序输出
    for (int i = lc; i > 0; i--)
    {
        cout << c[i];
    }
    cout << endl;
    
    return 0;
}

2.vector(推荐)

利用 vector 逆序存储大整数,将高精度加高精度封装成函数,方便在复杂的题目中直接调用。

#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector<int> add(vector<int> &a, vector<int> &b)
{
    // 保证a.size() >= b.size()
    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, c;
    
    // 逆序存储
    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');
    }
    
    c = add(a, b);
    
    // 逆序输出
    for (int i = c.size() - 1; i >= 0; i--)
    {
        cout << c[i];
    }
    cout << endl;

    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【模板】高精度加高精度 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问

随机推荐

  • DVWA - XSS DOM (low)

    low级别 XSS 全称Cross Site Scripting 即跨站脚本攻击 某种意义上也是一种注入攻击 是指攻击者在页面中注入恶意的脚本代码 当受害者访问该页面时 恶意代码会在其浏览器上执行 需要强调的是 XSS不仅仅限于JavaSc
  • 抖音 x-gorgon 03 免费生成接口 抖音6.3.0版本

    接口已经更新 请参考文章 https blog csdn net wql2014302721 article details 113737772 相关文章 抖音爬虫从0到1 第一弹 环境配置 抖音 x gorgon 03 免费生成接口 抖音
  • Markdown文档小技巧

    MarkDown文档现在可以说普及率原来越高 相对于其他的编辑 记得重点是如何输出内容 提供给你对应的 神秘代码 来完成一些如生成目录 数字符号 链接啊这些东西 更加关心文档的内容 0 推荐的的markdown文档编辑工具 我这里推荐Typ
  • android 关于mk如何引用其它so库

    通常 开发android的软件 常常需要编译so库 然编译的这个so库 需要调用多个其它的so库 这里主要记录一下 编译so库时 调用其它so库的mk 是怎么写的 这里讲的示例 需要编译出libtest3 so 它需要调用libtest1
  • Qt:QML:程序最大化最小化全屏之间的切换

    啥也不说了 直接上代码 import QtQuick 2 5 import QtQuick Controls 1 4 import QtQuick Window 2 0 ApplicationWindow id idMainWindow v
  • 美的年营收3412亿:净利286亿 何享健控制31.5%股权

    雷递网 雷建平 5月4日报道 美的日前公布年报 年报显示 美的2021年营收为3412亿元 较上年同期的2842亿元增长20 06 美的2021年净利为285 74亿元 较上年同期的272 23亿元增长4 96 扣非后净利为259 29亿元
  • oracle数据库中varchar类型字段中存放的有数字和汉字情况,比较大小问题解决

    如果你也正在为这种问题头疼 当你看到我这篇博客时 恭喜你 问题的解决方案来了 你头疼的问题可以解决了 这个问题是我在最近的项目中遇到的难题 上网查阅了很多资料 用什么平常使用的 lt lt gt gt 都没能解决问题 最后还是问了大牛 才解
  • SpringCloudGateway集成SpringDoc CORS问题

    SpringCloudGateway集成SpringDoc CORS问题 集成SpringDoc后 在gateway在线文档界面 请求具体的服务接口 报CORS问题 Failed to fetch Possible Reasons CORS
  • 2.5 使用SolidWorks转换STL格式为OBJ文件格式

    1 说明 使用SW进行三维模型建模 一般应用在机械工程领域中 将模型保存成STL格式后 转换为 obj文件 才能进一步转换为mesh文件 供QT中的3D控件进行使用 本文章记录一些格式转换步骤和关键点 以便参考 2 第一步 首先在SW软件界
  • easyui怎样实现textarea

    uqery easyui 本身没有实现textarea的封装 用的知识html元素 但是提供了textarea的验证器
  • cpp:State Pattern

    file Gold h brief State Pattern 状态模式 C 14 2023年5月29日 涂聚文 Geovin Du Visual Studio 2022 edit author geovindu date May 2023
  • PADS生成SMT坐标文件

    做SMT时 除了 gerber文件 外 还要提供 BOM文件 和 坐标文件 gerber文件 和 BOM文件 前面都有介绍过了 现在详细说一下生成 坐标文件 的方法 贴片厂家提供了操作教程 如下 所以 我们点开厂家的教程 按步骤操作即可 参
  • ImageMagick任意文件读取漏洞(CVE-2022-44268)

    0x00 前提 前几天爆出一个 ImageMagick 漏洞 可以造成一个任意文件读取的危害比较可观 最近有时间来复现学习一下 主要是影响的范围很大 很多地方都有这个问题 需要来学习一下 0x01 介绍 ImageMagick 是一个免费的
  • 粒子群算法(PSO)

    这几天看书的时候看到一个算法 叫粒子群算法 这个算法挺有意思的 下面说说我个人的理解 粒子群算法 PSO 是一种进化算法 是一种求得近似最优解的算法 这种算法的时间复杂度可能会达到O n 得到的结果不一定是最优解 往往已经很接近最优解了 最
  • 基于OFDM的水下图像传输通信系统matlab仿真

    目录 1 算法运行效果图预览 2 算法运行软件版本 3 部分核心程序 4 算法理论概述 5 算法完整程序工程 1 算法运行效果图预览 2 算法运行软件版本 matlab2022a 3 部分核心程序 function rx img func
  • 日本語 第二十二課

    森 毎晩 見 森先生每天晚上看电视 昨日 忙 昨天特别忙 簡単 电脑操作起来不简单 今日 曇 今天是阴天 明日 行 明天去打保龄球啊 明日 仕事 对不起 明天有工作啊 昨日 試験 昨天的考试怎么样啊 難 有一点难 但是都答上了 派手 这个领
  • 蓝桥杯题解 寻找2020 Java答案

    import java util ArrayList import java util Scanner public class Main static Scanner s new Scanner System in static Stri
  • QMap详解

    QMap详解 QMap是Qt的一个模板类 它是基于红黑树算法的一套字典 QMap
  • qml向Qt的C++传数组参数

    我们都知道qml和C 可以进行交互 但数据交互的过程中 一般只限于内置类型 比如int bool double等 如果是json或数组由C 传给qml qml是可以解析的 但如果是qml传数组给C 呢 该如何传参及解析数组参数呢 C 中通过
  • 【模板】高精度加高精度

    文章目录 1 数组 2 vector 推荐 下面这题是高精度加高精度的模板题 洛谷 P1601 A B Problem 高精 1 数组 include