目录

蓝桥杯-玉米地高精度乘法和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;
}