返回顶部
首页 > 资讯 > 移动开发 >模拟大数相加
  • 845
分享到

模拟大数相加

c++大数相加 2023-10-12 19:10:49 845人浏览 泡泡鱼
摘要

字符串的大数相加,不可以直接使用stoi,或者stoll这种函数去相加,随时有可能越界。只需要模拟计算加法的过程就可以了。 定义两个尾指针,指向num1,nums2的最后一个数字,让这两个数字相加,并把相加的结果记录下来;但是我们还需要考

字符串的大数相加,不可以直接使用stoi,或者stoll这种函数去相加,随时有可能越界。只需要模拟计算加法的过程就可以了。

定义两个尾指针,指向num1,nums2的最后一个数字,让这两个数字相加,并把相加的结果记录下来;但是我们还需要考虑多一个问题,就是num1和nums2的长度问题,假如哪个比较短的,我们就用0给它不上去就可以;至于如何判断短的,只要有尾指针越界了,另一个没有越界,那么越界的就表示该字符串比较短;
2.假如相加产生进位就处理它,只要相加的结果是>9的,就表示产生了进位,可以记录进位的值,并且把原来的相加结果-10,然后把该结果拼接到最终的结果集去;
3.最后反转最终结果集;

class Solution {    //模拟大数相加的方式    //1.考虑到进位的问题    //2.考虑到num1,num2的位数不够时候,要记得补上0public:    string addStrings(string num1, string num2) {        int end1 = num1.size()-1,end2 = num2.size()-1;        int carry = 0; //进位        string resStr ; //字符串得结果        while(end1 >=0 || end2 >=0)        {            //保存最后一个字符得值,用来相加            //保存最后一个字符时候,考虑num1和nums2的位数问题,不够要不上0            int x1 = end1>=0 ? num1[end1] -'0': 0;            end1--;            int x2 = end2>=0 ? num2[end2] - '0': 0;            end2--;            int res = x1+x2+carry; //个位的结果            if(res > 9) //有进位的产生            {                carry = 1;                res -= 10;            }            else            {                carry = 0;            }            //把个位放到结果集里            resStr +=res +'0';        }        //退出循环后,假如进位值还为1,表示只有 一个数和一个数相加:比如 5+6 =11        if(carry == 1)        {            resStr +='1';        }         reverse(resStr.begin(),resStr.end());        return resStr ;     }};

来源地址:https://blog.csdn.net/weixin_46653651/article/details/133793511

--结束END--

本文标题: 模拟大数相加

本文链接: https://lsjlt.com/news/429787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 模拟大数相加
    字符串的大数相加,不可以直接使用stoi,或者stoll这种函数去相加,随时有可能越界。只需要模拟计算加法的过程就可以了。 定义两个尾指针,指向num1,nums2的最后一个数字,让这两个数字相加,并把相加的结果记录下来;但是我们还需要考...
    99+
    2023-10-12
    c++ 大数相加
  • python下大数相加
    s1=input('please enter number:') s2=input('please enter number:') L1=[0] L2=[0] for i in range(0,len(s1)): L1.append(i...
    99+
    2023-01-31
    大数 python
  • JS实现大数相加大数相乘示例详解
    目录JS大数相加、大数相乘一、实现两个大数相加二、实现两个大数相乘JS大数相加、大数相乘 JavaScript 只有一种数字类型,可以使用也可以不使用小数点来书写数字。 在 Java...
    99+
    2022-11-13
    JS大数相加相乘 JS大数
  • C语言计算大数相加的方法
    本文实例为大家分享了C语言计算大数相加的具体代码,供大家参考,具体内容如下 问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较...
    99+
    2024-04-02
  • 【数模系列】02_三大相关系数+Python代码
    文章目录 一、皮尔逊相关系数1、公式推导2、使用条件3、Python绘图 二、斯皮尔曼秩相关系数1、如何选择皮尔逊和斯皮尔曼 三、肯德尔秩相关系数 一、皮尔逊相关系数 在统计学中,...
    99+
    2023-09-18
    python
  • 如何使用C语言计算大数相加
    这篇文章给大家介绍如何使用C语言计算大数相加,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器...
    99+
    2023-06-15
  • 怎么在java中实现两个大数相加
    怎么在java中实现两个大数相加?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下:public class BigIntAdd {priva...
    99+
    2023-05-30
    java
  • Teradata怎么加载大规模并行数据
    Teradata 使用 SQL 语句和 Teradata Parallel Transporter (TPT) 工具来加载大规模并行...
    99+
    2024-04-09
    Teradata
  • python模拟sed在每行添加##
         我们在平常的工作中有时候需要对摸一个文件进行操作,比如在一个文件的每行前面添加##之类的,在shell中这个需求很简单,用sed单行就能搞定,下面我们来看看一个文件:[root@host-192-168-209-128 py-s...
    99+
    2023-01-31
    python sed
  • PHP模拟上传文件使用CURLFile函数 加精!!!
    一、CURLFile 介绍 CURLFile::__construct (PHP 5 >= 5.5.0, PHP 7) CURLFile::__construct – curl_file_create — 创建 CURLFile 对象 说明...
    99+
    2023-09-14
    php 服务器 开发语言
  • php 不同数组相加
    在 PHP 中,数组是一种非常灵活且常用的数据类型,它可以存储多个值(元素),并且这些值可以是任意数据类型。当我们需要对不同数组进行相加的操作时,需要了解不同的相加方式以及相应的注意事项。使用 array_merge() 函数合并数组arr...
    99+
    2023-05-24
  • Android优化查询加载大数量的本地相册图片
    一、概述 讲解优化查询相册图片之前,我们先来看下PM提出的需求,PM的需求很简单,就是要做一个类似微信的本地相册图片查询控件,主要包含两个两部分: 进入图片选择页面就要显...
    99+
    2022-06-06
    图片 Android
  • php如何实现两个最大值相加
    这篇文章主要介绍“php如何实现两个最大值相加”,在日常操作中,相信很多人在php如何实现两个最大值相加问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现两个最大值相加”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-30
  • Z-Order加速Hudi大规模数据集的方法
    本篇内容介绍了“Z-Order加速Hudi大规模数据集的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 背景多维分析是大数据分析的一...
    99+
    2023-06-29
  • JS模拟实现串行加法器
    在重温《编码:隐匿在计算机软硬件背后的语言》第12章——二进制加法器时,心血来潮用JS写了一个模拟串行加法器。 测试断言工具TestUtils.js func...
    99+
    2024-04-02
  • python 大数加法
                  ...
    99+
    2023-01-31
    大数 加法 python
  • Z-Order加速Hudi大规模数据集方案分析
    目录1. 背景2. Z-Order介绍3. 具体实现3.1 z-value的生成和排序3.1.1 基于映射策略的z值生成方法3.1.2 基于RangeBounds的z-value生成...
    99+
    2024-04-02
  • Intel HAXM为Android 模拟器加速解决模拟器运行慢的问题
    Android 模拟器一直以运行速度慢著称, 本文介绍使用 Intel HAXM 技术为 Android 模拟器加速, 使模拟器运行度媲美真机, 彻底解决模拟器运行慢的问题。I...
    99+
    2022-06-06
    运行 模拟器 加速 Android
  • android实现模拟加载中的效果
    最近闲着没事做了一个Android小程序,具体如下: 效果图: 原始界面 点击按钮运行    运行后界面 实现代码: publ...
    99+
    2022-06-06
    Android
  • vue如何模拟加载更多功能
    这篇文章给大家分享的是有关vue如何模拟加载更多功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用vue制作加载更多功能,通过ajax获取的数据往data里面push经常不成...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作