大数乘小数
代码1:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
string mul(string a,int num)
{
if(num==0)
return 0;
string c;
reverse(a.begin(),a.end());
int i=0,k=0;
while(a[i])
{
int m=(a[i]-'0')*num+k;
c+=m%10+'0';
k=m/10;
i++;
}
while(k!=0)
{
c=c+(char)(k%10+'0');
k/=10;
}
reverse(c.begin(),c.end());
return c;
}
int main()
{
string c;
int num;
cin>>c>>num;
cout<<mul(c,num)<<endl;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
string mul(string a,int k)
{
if(k==0)
return 0;
int len=a.size(),carry=0;
reverse(a.begin(),a.end());
for(int i=0;i<len;i++)
{
int s=(a[i]-'0')*k+carry;
a[i]=s%10+'0';
carry=s/10;
}
while(carry!=0)
{
a=a+(char)(carry%10+'0');
carry/=10;
}
reverse(a.begin(),a.end());
return a;
}
int main()
{
string a;
int b;
cin>>a>>b;
cout<<mul(a,b)<<endl;
return 0;
}