蓝桥杯-玉米地高精度乘法和int与string之间的转换
目录
蓝桥杯 玉米地(高精度乘法和int与string之间的转换)
#include <bits/stdc++.h>
using namespace std;
int a[2005],b[2005],c[4005];
string mul(string sa,string sb)
{
if(sa=="0"||sb=="0")
{
return 0;
}
int lena=sa.size(),lenb=sb.size();
for(int i=0;i<lena;i++)
{
a[lena-i]=sa[i]-'0';
}
for(int i=0;i<lenb;i++)
{
b[lenb-i]=sb[i]-'0';
}
for(int i=1;i<=lena;i++)
{
for(int j=1;j<=lenb;j++)
{
c[i+j-1]+=a[i]*b[j];
}
}
for(int i=1;i<=lena+lenb;i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
string ans;
if(c[lena+lenb])
{
ans+=c[lena+lenb]+'0';
}
for(int i=lena+lenb-1;i>=1;i--)
{
ans+=c[i]+'0';
}
return ans;
}
int main()
{
// 请在此输入您的代码
int a,b,d;
string c;
cin>>a>>b>>c;
d=b*a;
string f=to_string(d);
cout<<mul(f,c);
return 0;
}
将int型转换为string型
#include <iostream>
#include <string>
using namespace std;
int main() {
int num = 123;
string strNum = to_string(num);
cout << typeid(strNum).name() << endl;
return 0;
}