大整数乘法
注意使用额外的空间会超时。
class Solution { public: string multiply(string num1, string num2) { reverse(num1.begin(),num1.end()); reverse(num2.begin(),num2.end()); int l1=num1.size(); int l2=num2.size(); string v(l1+l2,'0'); int s; int multi; int carry; for(int i=0;i<l1;i++) { s=num1[i]-'0'; carry=0; for(int j=0;j<l2;j++) { multi=s*(num2[j]-'0')+(v[i+j]-'0')+carry; carry=multi/10; v[i+j]=multi%10+'0'; } v[i+l2]=carry+'0'; } int i=v.size()-1; while(v[i]=='0'&&i>0)i--; v=v.substr(0,i+1); reverse(v.begin(),v.end()); return v; } };