华为机试HJ57:高精度整数加法
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
输入两个用字符串表示的整数,求它们所表示的数之和。
字符串的长度不超过10000。
本题含有多组样例输入。
输入描述:
输入两个字符串。保证字符串只含有'0'~'9'字符
输出描述:
输出求和后的结果
示例:
输入:
9876543210 1234567890
输出:
11111111100
解题思路:
本题通过字符串操作实现超高精度的整数加法。首先输入两个字符串,并判断长短,长字符串为被加数,短字符串为加数;设置进位符,按长字符串倒序开始计算,当短字符串当前位大于等于0时,说明当前处于加法阶段,若两数相加大于10,则进位,刷新result字符串;当加法结束后,还要考虑进位,直到进位完全结束,将剩下的长字符串字符补位;最后别忘了分析下进位符状态,若为true,说明长字符串最高位数字还要进一下位,即前面多个1,完成。
测试代码:
#include <iostream>
#include <string>using namespace std;string add(string s1, string s2)
{string result,Long,Short;// 长+短if (s1.size() > s2.size()){Long = s1;Short = s2;}else {Long = s2;Short = s1;}int j = Short.size() - 1;//进位符bool carry = false;for (int i = Long.size() - 1; i >= 0; --i){// 加法阶段if (j >= 0){int temp;if (carry){temp = int(Long[i] - '0') + int(Short[j] - '0') + 1;}else {temp = int(Long[i] - '0') + int(Short[j] - '0');}if (temp < 10) {result = char(temp + '0') + result;carry = false;}else {carry = true;temp -= 10;result = char(temp + '0') + result;}}// 进位阶段else if (carry) {int temp = int(Long[i] - '0') + 1;if (temp < 10) {result = char(temp + '0') + result;carry = false;}else {carry = true;temp -= 10;result = char(temp + '0') + result;}}// 补数阶段else {result = char(Long[i]) + result;}--j;}// 若最后一次操作有进位符的话,说明最终字符串还要在前面加个1,进位if(carry){result="1"+result;}return result;
}
int main()
{string s1, s2;while (cin >> s1 >> s2){cout << add(s1, s2) << endl;}return 0;
}
华为机试HJ57:高精度整数加法相关推荐
- HJ57 高精度整数加法
描述 输入两个用字符串 str 表示的整数,求它们所表示的数之和. 数据范围: 1 \le len(str) \le 10000 \1≤len(str)≤10000 输入描述: 输入两个字符串.保证字 ...
- 华为机试HJ33:整数与IP地址间的转换
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起 ...
- 牛客在线编程-华为机试-中等
牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...
- 华为机试108题(C 语言解答)
Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...
- 【华为机试 Python实现】华为机试题集合(已更新171篇)
文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...
- 【HUAWEI】华为机试试题-105
LeeCode试题链接直接上 HJ1 字符串最后一个单词的长度 HJ2 计算某字符出现次数 HJ3 明明的随机数:随机数去重排序输出(小-大) HJ4 字符串分隔:输入一个字符串,请按长度为8拆分每个 ...
- 华为机试(python):字符串1
HJ5 进制转换 题目: 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该数值的十进制字符串.不同组的测试用例用\n隔开. ...
- 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...
- 华为机试python需要需要当时编译通过吗_华为校招软开算法岗历年机试编程题77道C++代码详解(五)...
温馨提示:考虑到华为每年校招机试在牛客网进行,所以本文以及同系列其他八篇文章的所有代码均仅保证在牛客网华为机试页面100%accepted.其他编译器使用本代码可能会出现不通过的情况,请知晓. 41. ...
最新文章
- thinkphp日志泄漏漏洞_ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...
- mysql aes_MYSQL AES加密与解密函数使用
- info.plist文件里面添加描述 - 配置定位,相册等
- linux将日期和日历信息追加到文件中_Linux任务调度
- WinForm应用程序框架设计之WinAction(一:显示列表窗体)
- 前端写分页(用了自己同事写的插件)
- 乘法逆元 -- 模运算不满足分配律
- 判断是否是空对象_3分钟短文 | Laravel 查询结果检查是不是空,5个方法你别用错...
- 选用什么的域名后缀好
- 【webpack】windows10 局部安装webpack,配置环境变量
- Hbuilder如何替换选中代码快捷键
- python 手游自动化测试_Python+Appium实现APP自动化测试
- python怎么同时对多行代码进行注释?
- ubuntu更新软件——终端命令(更新所有软件[可更新])
- 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
- 2,理解Verilog的四值逻辑
- 快播3.5不升级版常见问题
- Local Light Field Fusion CVPR 2019
- 11 地图脚本 map scripting
- 新 Mac 到手,程序员应当做的配置
热门文章
- 畅谈云原生(上):云原生应用应该是什么样子?
- “音”你而来,“视”而可见 腾讯云+社区音视频技术开发实战沙龙圆满结束...
- 2017年商业智能的6大趋势
- 字典树+博弈 CF 455B A Lot of Games(接龙游戏)
- 【ThinkPHP 开发辅助系统】问答
- AAA及RADIUS/HWTACACS协议简介
- mysql 库名大小写_MySQL 库名、表名、字段名区分大小写吗???
- 中文拼写纠错_58搜索拼写纠错
- html日历框架,日历.html
- Python+OpenCV:图像梯度