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

C++大数加法——最简单实现

高精度加法

题目描述

给定两个整数 和 ,请你求出这两个整数的和。

输入描述

输入两个正整数 a,b, a和b都不超过100位。

输出描述

输出两数之和

输入样例

1
2

输出样例

3

输入样例

1234567890123456789
9876543210987654321

输出样例

11111111101111111110

思路及代码

#include<iostream>
#include<vector>
#include<algorithm>
//#define DEBUG true
using namespace std; 
const int maxLine = 100+10;
void initRedict(){#ifdef DEBUGcout<<"执行重定向"; freopen("../redict/demo/demo_in.txt","r",stdin);#endif
} 
string a,b;
vector<int> revVecA,revVecB;
int sumNums[maxLine];
int main(){initRedict(); cin>>a>>b;// 逆序读取 录入容器 for(int i=a.size()-1;i>=0;i--)  revVecA.push_back(a[i]-'0');for(int i=b.size()-1;i>=0;i--)  revVecB.push_back(b[i]-'0');// 获取a,b字符串长短 (如果有负数就需要使用其他方法判断了)// 这里适用于正大数加法 int maxlen=max(a.size(),b.size());int minlen=min(a.size(),b.size());// 计算主体	int jinwei=0;for(int i=0;i<maxlen;i++){int addNums;if (i<minlen) addNums=revVecA[i]+revVecB[i];else if (a.size()>=b.size()) addNums=revVecA[i];else addNums=revVecB[i];sumNums[i]+=(addNums+jinwei)%10;jinwei=(addNums+jinwei)/10;}// 末尾特判 sumNums[maxlen]=jinwei;if (jinwei) maxlen++;//输出res for(int i=maxlen-1;i>=0;i--){cout<<sumNums[i]; }return 0;
}

相关文章:

  • Webpack 基础以及常用插件使用方法
  • 基于GPIO子系统编写LED驱动
  • ChatGPT如何应对用户提出的道德伦理困境?
  • 【开源】基于SpringBoot的车险自助理赔系统的设计和实现
  • 【实战】Kubernetes安装持久化工具NFS-StorageClass
  • 【Python机器学习】零基础掌握RandomForestRegressor集成学习
  • MATLAB中polyvalm函数用法
  • MySQL - UNION 与 UNION ALL
  • web - 前段三剑客
  • json格式存储b64编码的rgb raw数据
  • leetcode_2558 从数量最多的堆取走礼物
  • 进制转换10进制转二进制,n进制转16进制
  • 一个简单的注册的页面,如有错误请指正;(3.JavaScript)
  • 记一次fineBI的增量删除更新BUG
  • Ansible上通过roles简化playbook演示介绍
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • canvas 高仿 Apple Watch 表盘
  • ERLANG 网工修炼笔记 ---- UDP
  • javascript数组去重/查找/插入/删除
  • Java教程_软件开发基础
  • js
  • mockjs让前端开发独立于后端
  • mysql常用命令汇总
  • php面试题 汇集2
  • ReactNative开发常用的三方模块
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 来,膜拜下android roadmap,强大的执行力
  • HanLP分词命名实体提取详解
  • ###C语言程序设计-----C语言学习(6)#
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (09)Hive——CTE 公共表达式
  • (二)斐波那契Fabonacci函数
  • (二开)Flink 修改源码拓展 SQL 语法
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)linux文件内容查看
  • (万字长文)Spring的核心知识尽揽其中
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)c++ std::pair 与 std::make
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Core 中间件验签
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Micro Framework初体验
  • .NET 依赖注入和配置系统
  • .NET 中的轻量级线程安全
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net6 Api Swagger配置
  • .Net中wcf服务生成及调用
  • @angular/cli项目构建--Dynamic.Form