C++——大数加法

2023-11-16

大数加法:即运算的数据可能很大,int、long、long long无法存放,存在字符串中,但是加法的运算规则还是10进制。

对于两个字符串,首先判断两者的长度,我们将字符串s设置为较长的字符串,方便后面的运算(也可以将t设置为较长的)。

从低位开始逐字符取出转换为整数num1和num2,当较短的已经取完则置num2为0;然后进行加法运算(记得加上进位flag),运算过程中用flag表示是否存在进位,结果对10求整就是进位结果,对10取余得到当前位置的结果,赋值给s当前位置,直到运算完毕。

最后需要注意的是,最高位是否存在进位,即判断循环结束后的flag值,若是等于1,则产生进位,在运算结果字符串s前拼接一个1即可,最后返回s即为所求结果。

(PS:对于其他进制的运算方法一样,只需要将标志位的计算方式变一下就行,比如8进制,则对8进行求整得到进位结果,取余就是当前位置的结果。)

 

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        // write code here
        if(s.size()<t.size())
        {
            string temp=s;
            s=t;
            t=temp;
        }
        int len1=s.size();
        int len2=t.size();
        int num1,num2,flag=0,sum;
        while(len1>0)
        {
            num1=s[len1-1]-'0';
            if(len2>0)
                num2=t[len2-1]-'0';
            else
                num2=0;
            sum=num1+num2+flag;
            s[len1-1]=sum%10+'0';
            flag=sum/10;
            len1--;
            len2--;
        }
        if(flag==1)
            s="1"+s;
        return s;
    }
};

 

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

C++——大数加法 的相关文章

  • 是否有与 posix_memalign 对应的 C++ 版本?

    当我打电话时posix memalign http man7 org linux man pages man3 posix memalign 3 html为类型的对象分配对齐的内存Foo在我的 C 代码中 我需要做一个reinterpret
  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • Redis 五大基础数据结构命令详细介绍

    文章目录 一 Redis数据结构 二 Redis通用命令 三 String类型 3 1 String类型 也就是字符串类型 是Redis中最简单的存储类型 3 2 String类型的常见命令 四 Redis key的层级格式 4 1 key
  • GPT发家史

    如今 ML 领域公号也卷得厉害 最早我 reddit 灌灌水 邮件看看 就有东西写了也不怕重 现在基本上能第一眼看到的东西肯定还没动手大号们就发完了 前段时间 DALL E 刚出 果然还没动手写 无数文章就给介绍完了 对个人而言 要写的话要
  • mysql之分页查询14

    1 分页查询 分页查询比较简单 主要是使用limit关键字去分页 一般理解分页公式limit page 1 size size 即可 进阶8 分页查询 应用场景 当要显示的数据 一页显示不全 需要分页提交sql请求 语法 select 查询
  • 【Git】Git切换地址

    如何切换git代码地址 1 查看当前远程 url git remote v 执行命令后 可以看见当前有2个URL 远程 URL 在一般情况下有两个 分别是 fetch 和 push fetch URL 是用于从远程仓库获取最新版本的数据 当
  • Java面向对象进阶&继承

    1 继承 1 1 继承的实现 继承的概念 继承是面向对象三大特征之一 可以使得子类具有父类的属性和方法 还可以在子类中重新定义 以及追加属性和方法 实现继承的格式 继承通过extends实现 格式 class 子类 extends 父类 举
  • 水仙花数(Java语言)——最基础全面的讲解

    题目 判读一个整数是否是水仙花数 所谓水仙花数是一个三位数 其各个位上数字立方和等于它本身 例如 153 1 1 1 3 3 3 5 5 5 首先进行思路分析 1 首先要得到此数百位 十位 个位上的数字 然后用 if 判断他们的立方和是否相
  • 数据库锁表?别慌,本文教你如何解决

    引言 作为开发人员 我们经常会和数据库打交道 当我们对数据库进行修改操作的时候 例如添加字段 更新记录等 没有正确评估该表在这一时刻的使用频率 直接进行修改 致使修改操作长时间无法响应 造成锁表 在 mysql 中 如果出现 alter 操
  • flink中AggregateFunction 执行步骤以及含义全网详细解释

    package operator import org apache flink api common functions AggregateFunction import org apache flink api common funct
  • 我对 Kubernetes 的片面理解 —— 基础篇(持续更新中)

    Kubernetes 为何让我如此着迷 Kubernetes 的高矮胖瘦 介绍 Kubernetes 功能 Kubernetes 边界 声明式的配置 创建 Deployment 更新 Deployment 回滚 Deployment Kub
  • Python 3.9.0 已经可以下载了,但不支持win7和更低的系统版本!

    python3 9 0最近在官网可以下载了 而3 10 0a1已经开始测试了 根据python官网的说法 python3 9 0将不再支持win7或者win7以前的系统 下载来试了一下 win7果然不支持了 安装时报错 3 9的一些新功能
  • MongoDb随笔,PyMongo简单使用

    安装MongoDb 更新2021 07 06 https www mongodb com try download community 下载对应系统的软件版本 CentOS7 9 mongod 4 4 6 rpm ivh mongodb o
  • VSCode:Remote-SSH配置实录

    转自 VSCode Remote SSH配置实录 六天 CSDN博客 也可以通过这样一步步输入用户名和密码链接 为什么要使用VSCode Remote SSH 服务器很多时候都是部署在Linux远程机器上的 我们通常是SSH连过去然后用vi
  • JDBC——BasicDAO

    为什么要有 BasicDAO apache dbutils Druid 简化了 JDBC 开发 但还有不足 SQL语句是固定 不能通过参数传入 通用性不好 需要进行改进 更方便执行增删改查 对于 select 操作 如果有返回值 返回类型不
  • Putty配色方案(转)

    平时用Putty的频率相对挺高的 每次装完系统或是怎么的都得重新配色 还得百度去找配色表 每次太麻烦了 特地转载一篇好看的配色表供以后长期使用 以下内容为转载内容 使用的是修改注册表的方法 1 打开注册表 运行 regedit 2 找到对应
  • matlab仿真实例100题_输入-输出反馈线性化(Feedback linearization)控制算法Matlab仿真实例...

    反馈线性化 Feedback linearization 可能是大部分人接触非线性控制之后学习的第一种控制方法 个人认为主要优点有两点 一 它的理解和实现都相对简单 二 它能让非线性系统的转换为线性系统 这样接下来 就可以直接套用线性系统中
  • SQLEXPRESS服务无法启动

    一 软件版本 SQL Sever2014 localdb MSSQLLocalDB SQLServer13 0 VS2015 二 问题描述 由于使用web API中的odata编程 在工程中使用的是 localdb MSSQLLocalDB
  • Lintcode 464. 整数排序 II 冒泡排序三种实现 直接插入排序 直接选择排序 java

    一 冒泡排序 实现思路 https blog csdn net morewindows article details 6657829 Lintcode https www lintcode com problem sort integer
  • Ubuntu下安装及卸载JDK

    安装 1 添加 PPA repository 到系统 sudo add apt repository ppa webupd8team java 2 更新 sudo apt get update 3 下载安装 JDK sudo apt get
  • 算法专题之二叉树

    前言 树型数据结构广泛存在于现实世界中 比如家族族谱 企业职能架构等 它是一类在计算机领域被广泛应用的非线性数据结构 二叉树是树型数据中最常用的一类 本文从前端角度以js语法构建和操作二叉树的相关知识 基础概念 观察上图 二叉树的数据结构如
  • C++——大数加法

    大数加法 即运算的数据可能很大 int long long long无法存放 存在字符串中 但是加法的运算规则还是10进制 对于两个字符串 首先判断两者的长度 我们将字符串s设置为较长的字符串 方便后面的运算 也可以将t设置为较长的 从低位