计算机考研复试真题 a+b(大数加法)
题目描述
输入描述:
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出描述:
可能有多组测试数据,对于每组数据,
输出a+b的值。
输入
2 6
10000000000000000000 10000000000000000000000000000000
输出
8
10000000000010000000000000000000
/*
程序设计思路:属于大数相加题型,一种典型解题步骤:
1、从结尾开始每位相加
2、两个整数长度不相等(肯定有一个已经加完了,再把没有加完的加上去)
3、最高位有进位,要再进一位
4、结果字符串逆序
*/
#include<iostream>
#include<string>
#include<algorithm>
using namespace std; string BigNumAdd(const string& strNum1, const string& strNum2)
{
string strSum;
int len1 = strNum1.size()-1;
int len2 = strNum2.size()-1;
int bit = 0; //保存进位 //从结尾开始每位相加
while (len1>=0 && len2>=0)
{
//求每位的和(要把进位也加上)
int tmpSum = strNum1[len1]-'0' + strNum2[len2]-'0' + bit;
//保存进位结果
strSum += tmpSum % 10 + '0';
//求进位
bit = tmpSum / 10;
--len1;
--len2;
} //两个整数长度不相等(肯定有一个已经加完了,不需要再额外加if来判断,因为while就可以判断)
while (len1 >= 0)
{
//和上个while循环一样
int tmpSum = strNum1[len1]-'0' + bit;
strSum += tmpSum % 10 + '0';
bit = tmpSum / 10;
--len1;
}
while (len2 >= 0)
{
//和上个while循环一样
int tmpSum = strNum2[len2]-'0' + bit;
strSum += tmpSum % 10 + '0';
bit = tmpSum / 10;
--len2;
} //最高位有进位
if (bit != 0)
strSum += bit + '0';
//反转
reverse(strSum.begin(), strSum.end());
return strSum;
} int main(){
string num1,num2;
while(cin>>num1>>num2){
cout<<BigNumAdd(num1,num2)<<endl;
}
return 0;
}
计算机考研复试真题 a+b(大数加法)的更多相关文章
- 计算机考研复试真题 abc
题目描述 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的所有a.b.c的值. 输入描述: 题目没有任何输入. 输出描述: 请输出所有满足题目条 ...
- 计算机考研复试真题 N阶楼梯上楼问题
题目描述 N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入描述: 输入包括一个整数N,(1<=N<90). 输出描述: 可能有多组测试数据,对于每组数据 ...
- 计算机考研复试 A+B
题目描述 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入描述: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B ...
- WEB前端面试真题 - 2000!大数的阶乘如何计算?
HTML5学堂-码匠:求某个数字的阶乘,很难吗?看上去这道题异常简单,却不曾想里面暗藏杀机,让不少前端面试的英雄好汉折戟沉沙. 面试真题题目 如何求"大数"的阶乘(如1000的阶乘 ...
- 计算机等级考试真题2(JAVA)
答案: 解析: (注:解析部分是博主用所学知识以及在百度上搜索总结出来的) 1. D (A)类属于JAVA语言的引用数据类型. (B)接口属于JAVA语言的引用数据类型. (C)数组属于JAVA语 ...
- 计算机等级考试真题1(JAVA)
答案: 01-05 C D A A C 06-10 B/D C C C B 11-15 A C A C A 16-20 C B C 21-25 D D C D D 26-30 ...
- 九度oj 1003 A+B 2010年浙江大学计算机及软件工程研究生机试真题
题目1003:A+B 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:12812 解决:5345 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号",&qu ...
- 计算机考研真题 ZOJ问题
题目描述 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或 ...
- 九度oj 1034 寻找大富翁 2009年浙江大学计算机及软件工程研究生机试真题
题目1034:寻找大富翁 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5323 解决:2123 题目描述: 浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁. 输入: ...
随机推荐
- Win10新增API
Win10新增API为以下一些方面: Windows.AI Windows.ApplicationModel Windows.Devices Windows.Globalization Windows ...
- webstorm实现手机预览页面
效果:在webstorm中开发页面,复制该页面在电脑中的浏览网址,发给手机,在手机上点击链接,可以直接访问本地开发的页面.并且,电脑上修改后保存,手机上刷新即可看到效果. 步骤: 1.webstorm ...
- Feign使用注意事项
使用Feign时,为了不写重复代码,需要写feign公共接口方便调用,这时候需要注意以下问题,以发邮件为例 定义公共接口 /** * @author liuyalong * @date 2020/10 ...
- Vagrant批量安装CentOS7
环境准备 下载virtualbox https://download.virtualbox.org/virtualbox/6.1.10/VirtualBox-6.1.10-138449-Win.exe ...
- js下 Day19、综合案例
一.吸顶楼层 效果图: 功能思路分析: 1. 面向对象框架 2. 渲染导航 \1. 数据 \2. 对象结构的数据用for in遍历 \3. 渲染时将属性名设为锚点(a标签的href) 3. 渲染车系 ...
- 跟我一起学Redis之高可用从主从复制开始
前言 现在遇到高并发场景时,缓存技术应该算是性能优化的第一步,缓解数据库压力的同时还能提高访问效率,而Redis应该是绝大多数应用场景的首选.但是尽快Redis性能再优秀,在当今高并发场景下,一台服务 ...
- Linux下源码安装方式安装MySQL
1.下载安装包:https://downloads.mysql.com/archives/community/ 2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...
- 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。
前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...
- 2.mysql explain命令详解
EXPLAIN详解 SQL编写和解析 编写过程 select-distinct-from-join-on-where-group by-having-order by-limit- 解析过程 from ...
- 认识ollydbg
四个区域:汇编区:虚拟地址,机器码,汇编指令,注释: 寄存器区:寄存器,数据: 数据区, 栈. 这是上面按钮的作用 热键: Ctrl+F2 - 重启程序. Alt+F2 - 关闭被调试程序. F3 - ...