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

C++蓝桥杯 基础练习,高精度加法,输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。

C++蓝桥杯 基础练习,高精度加法

问题描述

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

算法描述

由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。
  最后将C输出即可。

输入格式

输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。

输出格式

输出一行,表示a + b的值。

样例输入

20100122201001221234567890
2010012220100122

样例输出

20100122203011233454668012

#include<iostream>
#include<string>
#include<algorithm>using namespace std;int main() {string s1;string s2;vector<int> v1;vector<int> v2;vector<int> v;//最后输出cin >> s1;cin >> s2;for (int i = s1.size() - 1; i >= 0; i--) {v1.push_back(s1[i] - '0');//char型转换为对应的int型}for (int i = s2.size() - 1; i >= 0; i--) {v2.push_back(s2[i] - '0');//char型转换为对应的int型}//将两个容器相同长度的对应位置相加int t;for (t = 0; t < v1.size() && t < v2.size(); t++) {v.push_back(v1[t] + v2[t]);}//超过的长度判断while(t<v1.size()){v.push_back(v1[t]);t++;}while(t<v2.size()){v.push_back(v2[t]);t++;}//对于容器中元素超过10的进行,进位for(int i=0;i<v.size();i++){if(v[i]>=10){int temp=v[i];v[i] %=10;if(i!=v.size()-1){//不是最高位v[i+1]+=temp/10;}else{v.push_back(temp/10);}}}//倒序输出for(int i=v.size()-1;i>=0;i--){cout<<v[i];}
}
http://www.lryc.cn/news/612.html

相关文章:

  • MySQL面试题:SQL语句的基本语法
  • Fluid-数据编排能力原理解析
  • 并发线程、锁、ThreadLocal
  • CMMI-结项管理
  • 网络通信协议是什么?
  • 阶段5:Java分布式与微服务实战
  • 我的创作纪念日
  • Qml学习——动态加载控件
  • 设计模式之职责链模式
  • MySQL入门篇-MySQL 8.0 延迟复制
  • FPGA时序约束与分析 --- 实例教程(1)
  • go深拷贝和浅拷贝
  • linux网络系统层面的配置、管理及操作命令汇总
  • R数据分析:孟德尔随机化中介的原理和实操
  • 【C++】 类和对象 (下)
  • asp获取毫秒时间戳的方法 asp获取13位时间戳的方案
  • Python基础篇(十五)-- Python程序接入MySQL数据库
  • 程序员不得不知道的 API 接口常识
  • 【项目精选】基于Java的银行排号系统的设计与实现
  • 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传
  • 解决报错: ERR! code 128npm ERR! An unknown git error occurred
  • 聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享
  • 菊乐食品更新IPO招股书:收入依赖单一地区,规模不及认养一头牛
  • Elasticsearch安装IK分词器、配置自定义分词词库
  • Linux嵌入式开发——shell脚本
  • CV【5】:Layer normalization
  • 跳跃游戏 II 解析
  • 易基因|猪肠道组织的表观基因组功能注释增强对复杂性状和人类疾病的生物学解释:Nature子刊
  • 01- NumPy 数据库 (机器学习)
  • RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机