点击打开链接
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cstring>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<limits.h>
#include<assert.h>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
class Solution {
public:
string multiply(string num1, string num2) {
string sum(num1.size()+num2.size(),'0');
int carry=0,tmp=0;
for(int i=num1.size()-1;i>=0;i--){
carry=0;
for(int j=num2.size()-1;j>=0;j--){
tmp=(sum[i+j+1]-'0')+(num1[i]-'0')*(num2[j]-'0')+carry;
sum[i+j+1]=tmp%10+'0';
carry=tmp/10;
}
sum[i]+=carry;//最后一位进位
}
return sum;
size_t startpos=sum.find_first_not_of("0");//从首开始返回不匹配0的索引位置
if(string::npos!=startpos){
return sum.substr(startpos);//取startpos往后的字符串
}
return "0";
}
};
int main()
{
Solution temple;
return 0;
}