链接:
415. 字符串相加
题意:
给两个非负整数字符串,要求不使用用于处理大整数的库
解:
简单题,反正就是考查字符串处理和数学基础,冲冲冲
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.4 MB, 在所有 C++ 提交中击败了99.95%的用户
实际代码:
#include<iostream>
using namespace std;
string addStrings(string num1, string num2)
{if(num1.length()<num2.length()) swap(num1,num2);int lg1=num1.length(),lg2=num2.length(),add=0;for(int i1=lg1-1,i2=lg2-1;i1>=0||i2>=0;i1--,i2--){int t1=0,t2=0,t3=add;if(i1>=0) t1=num1[i1]-'0';if(i2>=0) t2=num2[i2]-'0';num1[i1]=char((t1+t2+add)%10+'0');add=(t1+t2+add)/10;}if(add) num1=char(add+'0')+num1;return num1;
}
int main()
{string num1,num2;cin>>num1>>num2;string ans=addStrings(num1,num2);cout<<ans<<endl;return 0;
}
限制:
1 <= num1.length, num2.length <= 104
num1
和num2
都只包含数字0-9
num1
和num2
都不包含任何前导零