wordpress 推荐插件,花生壳内网穿透网站如何做seo优化,互动平台umu,信息发布字符串的大数相加#xff0c;不可以直接使用stoi#xff0c;或者stoll这种函数去相加#xff0c;随时有可能越界。只需要模拟计算加法的过程就可以了。 1.定义两个尾指针#xff0c;指向num1,nums2的最后一个数字#xff0c;让这两个数字相加#xff0c;并把相加的结果记…字符串的大数相加不可以直接使用stoi或者stoll这种函数去相加随时有可能越界。只需要模拟计算加法的过程就可以了。 1.定义两个尾指针指向num1,nums2的最后一个数字让这两个数字相加并把相加的结果记录下来但是我们还需要考虑多一个问题就是num1和nums2的长度问题假如哪个比较短的我们就用0给它不上去就可以至于如何判断短的只要有尾指针越界了另一个没有越界那么越界的就表示该字符串比较短 2.假如相加产生进位就处理它只要相加的结果是9的就表示产生了进位可以记录进位的值并且把原来的相加结果-10然后把该结果拼接到最终的结果集去 3.最后反转最终结果集
class Solution {//模拟大数相加的方式//1.考虑到进位的问题//2.考虑到num1,num2的位数不够时候要记得补上0
public:string addStrings(string num1, string num2) {int end1 num1.size()-1,end2 num2.size()-1;int carry 0; //进位string resStr ; //字符串得结果while(end1 0 || end2 0){//保存最后一个字符得值用来相加//保存最后一个字符时候考虑num1和nums2的位数问题不够要不上0int x1 end10 ? num1[end1] -0: 0;end1--;int x2 end20 ? num2[end2] - 0: 0;end2--;int res x1x2carry; //个位的结果if(res 9) //有进位的产生{carry 1;res - 10;}else{carry 0;}//把个位放到结果集里resStr res 0;}//退出循环后假如进位值还为1表示只有 一个数和一个数相加比如 56 11if(carry 1){resStr 1;} reverse(resStr.begin(),resStr.end());return resStr ; }
};