题目:
思路:
1.竖式乘法
2.引入进位。
3.从0开始,最后再反转。
代码:
int main()
{
string n1="123";
string n2="456";
//if(n1=="0") return n1;
//if(n2=="0") return n2;
string s(n1.size()+n2.size(),'0');
for(int i=0;i<n1.size();i++)
{
int c=0;//表示进位
for(int j=0;j<n2.size();j++)
{
//先化为整数
int c1=n1[n1.size()-1-i]-'0';
int c2=n2[n2.size()-1-j]-'0';
int cc=c1*c2+c+s[i+j]-'0';
c=cc/10;
s[i+j]=cc%10+'0';
}
s[i+n2.size()]=c+'0';
}
reverse(s.begin(),s.end());
while(s[0]=='0')
{
s=s.substr(1,s.length()-1);
}
cout<<s;
}