摘要:字符串的长度不超过。本题含有多组样例输入。保证字符串只含有字符输出描述输出求和后的结果示例输入输出解题思路本题通过字符串操作实现超高精度的整数加法。
作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
输入两个用字符串表示的整数,求它们所表示的数之和。
字符串的长度不超过10000。
本题含有多组样例输入。
输入两个字符串。保证字符串只含有"0"~"9"字符
输出求和后的结果
输入:
98765432101234567890
输出:
11111111100
本题通过字符串操作实现超高精度的整数加法。首先输入两个字符串,并判断长短,长字符串为被加数,短字符串为加数;设置进位符,按长字符串倒序开始计算,当短字符串当前位大于等于0时,说明当前处于加法阶段,若两数相加大于10,则进位,刷新result字符串;当加法结束后,还要考虑进位,直到进位完全结束,将剩下的长字符串字符补位;最后别忘了分析下进位符状态,若为true,说明长字符串最高位数字还要进一下位,即前面多个1,完成。
#include #include 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;}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119104.html
摘要:要求输出所有火车出站的方案,以字典序排序输出。输入描述有多组测试用例,每一组第一行输入一个正整数输出描述输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见。 作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明...
摘要:前言最近,朋友问了我这样一个问题在中的运算结果,为什么是这样的虽然我告诉他说,这是由于浮点数精度问题导致的。由于可以用阶码移动小数点,因此称为浮点数。它的实现遵循标准,使用位精度来表示浮点数。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 问了我这样一个问题:在 chrome 中的运算...
摘要:标准二进制浮点数算法就是一个对实数进行计算机编码的标准。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 浮点运算JavaScript 本文主要讨论JavaScript的浮点运算,主要包括 JavaScript number基本类型 二进制表示十进制 浮点数的精度 number 数字类型 在JavaScript中,数字只有numb...
摘要:而所有的数据运算都是采用补码进行的。补码解决负数加法运算正负零问题,弥补了反码的不足。通过使用访问修饰符可以使实例变量对子类可见暂时在学习基础语法知识的时候可以暂时忽略实例变量这部分内容,这部分内容主要被使用在面向对象的部分,但是极其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...
阅读 1365·2021-10-11 10:58
阅读 1452·2021-09-04 16:41
阅读 650·2019-08-30 15:55
阅读 777·2019-08-29 18:46
阅读 3113·2019-08-29 14:05
阅读 3501·2019-08-26 14:00
阅读 2428·2019-08-26 13:53
阅读 3103·2019-08-26 13:29