当前位置: 首页 > news >正文

大数加法C++实现

题目:假设输入是2个数字,可能超过long long类型能表示的范围,请输出两数相加的运算结果。

思路:2个数输入的时候,肯定都是用string存的,先将短的数在末尾补0,使得二者一样长。然后挨个位相加,并设置一个标志位专门用来存溢出(即进位)情况。
代码如下:

#include <stdio.h>
#include <string>using namespace std;static void compasent0(std::string& inputStr1, std::string& inputStr2)
{if (inputStr1.size() < inputStr2.size()){int diff = inputStr2.size() - inputStr1.size();string prefix(diff, '0');inputStr1 = prefix + inputStr1;}else{{int diff = inputStr1.size() - inputStr2.size();string prefix(diff, '0');inputStr2 = prefix + inputStr2;}}
}static bool checkStrValid(const std::string inputStr)
{for(const char& ch : inputStr){if ((ch < '0') || (ch > '9')){return false;}}return true;
}static std::string BigNumAdd(std::string inputStr1, std::string inputStr2)
{if (!checkStrValid(inputStr1) || !checkStrValid(inputStr2)){printf("ERROR, invalid input!\n");return "ERROR";}compasent0(inputStr1, inputStr2);printf("line[%u], inputStr1[%s], inputStr2[%s]\n", __LINE__, inputStr1.c_str(), inputStr2.c_str());std::string out(inputStr1.size(), '0');int tempSum = 0;int overflow = 0;for (int i = inputStr1.size() - 1; i > -1; --i){tempSum = (int)(inputStr1[i] - '0') + (int)(inputStr2[i] - '0') + overflow;if (tempSum < 10){out[i] = (char)(tempSum + '0');overflow = 0;}else{out[i] = (char)(tempSum % 10 + '0');overflow = 1;}}if (overflow){out = to_string(overflow) + out;}return out;
}int main()
{std::string inputStr1 = "1906";std::string inputStr2 = "456";std::string outputStr = BigNumAdd(inputStr1, inputStr2);printf("outputStr[%s]\n", outputStr.c_str());inputStr1 = "99999999999999999999";inputStr2 = "1";outputStr = BigNumAdd(inputStr1, inputStr2);printf("outputStr[%s]\n", outputStr.c_str());return 0;
}

输出是:

./a.out
line[45], inputStr1[1906], inputStr2[0456]
outputStr[2362]
line[45], inputStr1[99999999999999999999], inputStr2[00000000000000000001]
outputStr[100000000000000000000]

相关文章:

大数加法C++实现

题目&#xff1a;假设输入是2个数字&#xff0c;可能超过long long类型能表示的范围&#xff0c;请输出两数相加的运算结果。 思路&#xff1a;2个数输入的时候&#xff0c;肯定都是用string存的&#xff0c;先将短的数在末尾补0&#xff0c;使得二者一样长。然后挨个位相加&am…...

如何使用CHAT-AI?

伴随着CHAT-GPT的出现&#xff0c;人们都喜欢上了CHAT-AI。嗯&#xff1f;你还不会用&#xff1f;&#xff01; 教程来喽&#xff01; 首先点这里的 … 点击扩展 接着选择“管理扩展” 点击之后搜索“wetab” 最后你需要注册一个号&#xff0c;然后就可以使用CHAT-AI啦&#x…...

文献速递:基于SAM的医学图像分割--SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型

Title 题目 SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation SAMUS&#xff1a;适应临床友好型和泛化的超声图像分割的Segment Anything模型 01 文献速递介绍 医学图像分割是一项关键技术&#xff0c;用…...

23届嵌入式被裁,有什么好的就业建议?

最近看到了一个提问&#xff0c;原话如下&#xff1a; 本人23届毕业生&#xff0c;就业方向嵌入式软件&#xff0c;坐标深圳&#xff0c;工作3月公司裁员&#xff0c;目前接近12月开始找工作。 boss上投递简历&#xff0c;校招岗&#xff0c;比较有规模的好公司基本已读不回&am…...

你的 Python 代码需要解释一下了!

Python 是一种相对简单的编程语言。它主要以解释型语言著称&#xff0c;这意味着每行代码都要通过解释器逐行执行。不过在某些时候&#xff0c;将 Python 代码翻译成计算机可以理解的内容&#xff0c;然后再逐行执行&#xff0c;可以减少繁琐。 在这种情况下&#xff0c;编译器…...

听说,抖音小店要废除新手期了?没错!大动作来了!

大家好&#xff0c;我是电商小布。 一个项目从它的推出&#xff0c;到发展&#xff0c;再到成为行业的头部&#xff0c;都是需要不断进行完善的。 抖音小店这个项目也是一样。 这不&#xff0c;抖店平台在前两天又推出了新的通知&#xff0c;宣布废止新手期商家规范。 也就…...

【Java程序设计】【C00351】基于Springboot的疫情居家办公系统(有论文)

基于Springboot的疫情居家办公系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 &#x1f345;文末点击卡片获取源码&#x1f345; 开发环境 运行环境&#xff1a;推荐jdk1.8&#xff1b; 开发工具&#xff1a;eclipse以及i…...

HarmonyOS鸿蒙开发组件状态管理详细说明

组件状态管理 一、State State用于装饰当前组件的状态变量&#xff0c;State装饰的变量在发生变化时&#xff0c;会驱动当前组件的视图刷新&#xff0c;语法如下&#xff1a; State count:number 1; 需要注意的是&#xff1a;State装饰的变量必须进行本地初始化。 允许装…...

【剑指offer】顺时针打印矩阵

题目链接 acwing leetcode 题目描述 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 数据范围矩阵中元素数量 [0,400]。 输入&#xff1a; [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出&#xff1a;[1,2,3,4,8,12,11,10,9,5,6,7] 解题 …...

推特社交机器人分类

机器人有不同的种类。 cresci-17数据集中的三种不同的机器人类:传统垃圾机器人、社交垃圾机器人和假追随者。 传统的垃圾邮件机器人会生成大量推广产品的内容&#xff0c;并且可以通过频繁使用的形容词来检测; 社交垃圾邮件倾向于攻击或支持政治候选人&#xff0c;因此情绪是一…...

openGauss增量备份恢复

openGauss 增量备份恢复 openGauss 数据库自 2020 年 6 月 30 日发布以来&#xff0c;很多小伙伴都提到“openGauss 数据库是否有增量备份工具&#xff1f;“这么一个问题。 在 openGauss 1.0.0 版本的时候&#xff0c;关于这个问题的回答往往是&#xff1a;“Sorry…”&…...

Idea与DataGrip各版本通用破解码,无需脚本。

直接输入即可。若失效&#xff0c;访问网址http://idea521.com/即可获取新的破解码。亲测好用。 Idea与DataGrip是一个公司的产品&#xff0c;这里的破解码可通用。 破解码一&#xff1a; 375XQD8EO2-eyJsaWNlbnNlSWQiOiIzNzVYUUQ4RU8yIiwibGljZW5zZWVOYW1lIjoi5YWo5a625qG2IHd…...

C++作业day6

编程1&#xff1a; 封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪 再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员&#xff1a;腿的个数&#xff08;整型 …...

mysql的单表、多表查询和数据类型

一、MySQL数据库表操作 MySQL表的基本概念 在windows中有个程序叫做excel. 而Excel文件中存在了如sheet1、sheet2、sheet3的表, 所有的sheet都存储在这个Excel文件中, 在某个sheet中有相应的数据. 回到数据库和表的关系上来说, 这个Excel文件就是一个数据库, 所有的sheet就是…...

中间件-消息队列

消息队列基础知识 什么是消息队列 本处提到的消息队列是指各个服务以及系统组件/模块之间的通信&#xff0c;属于一种中间件。参与消息传递的双方称为生产者和消费者&#xff0c;生产者负责发送消息&#xff0c;消费者负责处理消息。 消息队列作用 通过异步处理&#xff0…...

一文get,最容易碰上的接口自动化测试问题汇总

本篇文章分享几个接口自动化用例编写过程遇到的问题总结&#xff0c;希望能对初次探索接口自动化测试的小伙伴们解决问题上提供一小部分思路。 sql语句内容出现错误 空格&#xff1a;由于有些字段判断是变量&#xff0c;需要将sql拼接起来&#xff0c;但是在拼接字符串时没有…...

Oracle:ORA-01830错误-更改数据库时间格式

1,先把报错SQL语句拿出来执行&#xff0c;看看是不是报的这个错 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 2&#xff0c;然后查看默认日期格式是不是“YYYY-MM-DD HH24:MI:SS”&#xff08;正确格式&#xff09;。&#xff1b; 执行&#xff1a; SELECT * FRO…...

树状数组及应用

目录 1.树状数组的概念与基本编码 1.1.引导 1.2.lowbit(x) 1.3.树状数组的编码 2.树状数组的基本应用 2.1.单点修改&#xff0b;区间查询 2.2.区间修改单点查询 例题&#xff1a; 2.3.区间修改&#xff0b;区间查询 例题&#xff1a; 如果数列A是静态不变的&#xff…...

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…...

【C++ leetcode】双指针(专题完结)

15. 三数之和 题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…...

如何免费激活Windows和Office:3步实现永久激活的终极指南

如何免费激活Windows和Office&#xff1a;3步实现永久激活的终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows激活弹窗烦恼吗&#xff1f;是否遇到过Office突然变成只读模式…...

原神抽卡数据分析神器:告别盲目抽卡,用数据掌控你的欧皇之路

原神抽卡数据分析神器&#xff1a;告别盲目抽卡&#xff0c;用数据掌控你的欧皇之路 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 你是否曾在原神抽卡时…...

毕业论文难写?2026年AI论文平台排行榜权威发布,轻松定稿不是梦!

写论文效率低、熬夜赶稿、查重不过关&#xff1f;别慌&#xff01;2026 年最新 AI 论文写作软件排行榜来了&#xff0c;覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程&#xff0c;帮你精准匹配最适合的学术助手&#xff0c;彻底告别论文内耗&#xff01;&#x1f3c…...

Spek音频频谱分析器:如何免费快速可视化音频频率的秘密世界

Spek音频频谱分析器&#xff1a;如何免费快速可视化音频频率的秘密世界 【免费下载链接】spek Acoustic spectrum analyser 项目地址: https://gitcode.com/gh_mirrors/sp/spek Spek是一款功能强大的开源音频频谱分析工具&#xff0c;能够将复杂的音频信号转换为直观的彩…...

MSTP+VRRP+链路聚合简单配置

实验需求&#xff1a;1.存在两个用户业务网&#xff0c;分布为VLAN 10和VLAN 20&#xff0c;需要SW1作为VLAN 10根桥和VRRP-master设备2.SW2作为VLAN 20根桥和VRRP-master设备3.网段自行规划&#xff0c;全网可达配置思路&#xff1a;两条实例&#xff1a;需要在 MSTP 域中配置…...

python智能ai技术的智慧城市便民服务管理中心平台_668r7c05

目录同行可拿货,招校园代理 ,本人源头供货商项目背景核心技术功能模块应用场景优势与创新项目技术支持获取博主联系方式 源码获取详细视频演示 &#xff1a;同行可合作点击我获取源码->获取博主联系方式->进我个人主页-->同行可拿货,招校园代理 ,本人源头供货商 项目…...

Creality Print:从新手到专家的完整3D打印切片软件指南

Creality Print&#xff1a;从新手到专家的完整3D打印切片软件指南 【免费下载链接】CrealityPrint 项目地址: https://gitcode.com/gh_mirrors/cr/CrealityPrint 在3D打印的世界里&#xff0c;切片软件是连接数字模型与物理实体的关键桥梁。无论您刚刚接触3D打印&…...

明日方舟智能基建管理:Arknights-Mower 完整指南与实战应用

明日方舟智能基建管理&#xff1a;Arknights-Mower 完整指南与实战应用 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》基建管理的繁琐操作而烦恼吗&#xff1f;每天重复的干员…...

Docker 部署实战:前端应用容器化指南

Docker 部署实战&#xff1a;前端应用容器化指南 什么是 Docker&#xff1f; Docker 是一个开源平台&#xff0c;用于开发、部署和运行应用程序。它使用容器化技术&#xff0c;将应用程序及其依赖打包在一个独立的容器中。 Docker 的优势 一致性&#xff1a;开发环境与生产环境…...

单物体最优抓取轨迹生成

基于 3D 位姿规划直线平滑抓取轨迹&#xff0c;包含趋近 - 抓取 - 复位三段最优运动路径&#xff0c;适配机械臂点位运动核心规划逻辑基准位&#xff1a;机械臂初始安全待机点趋近段&#xff1a;直线匀速靠近物体上方预备抓取点抓取段&#xff1a;垂直下落至物体抓取中心位姿抬…...