经典全红 测出来好像是这么个意思 麻了个巴子的,这次问题又出在哪里呢
#include <bits/stdc++.h>
using namespace std;
#define u unsigned long long
#define max 800000
int main ()
{
string a,b;
cin>>a>>b;
int aa[max],bb[max];
if (a=="0"&&b=="0"){cout <<0;return 0;}
for (int i=0;i<a.size();i++) aa[i]=a[a.size()-i-1]-48;
for (int i=0;i<b.size();i++) bb[i]=b[b.size()-i-1]-48;
int cc[max],jw[max];
for (int i=0;i<max;i++) {cc[i]=0;jw[i]=0;}
///////初始化
if (1)
{
for (int i=0;i<b.size()+10;i++)
{
for (int j=0;j<a.size()+10;j++)
{//bb[i]*aa[j] jw:
if (bb[i]*aa[j]+jw[i+j]>=10)
{
cc[i+j]+=(bb[i]*aa[j]+jw[i+j])%10;
jw[i+j+1]=(bb[i]*aa[j]+jw[i+j])/10%10;
jw[i+j]=0;
//cout << "NOWi+j:"<<i+j<<endl<<"NOWcc:"<<cc[i+j]<<endl<<"NEXTjw:"<<jw[i+j+1]<<endl;
}
else
{
//cout << "NOWi+j:"<<i+j<<endl<<"NOWcc:"<<cc[i+j]<<endl;
cc[i+j]+=(bb[i]*aa[j]+jw[i+j])%10;
jw[i+j]=0;
}
}
}
//数据存储完毕,但未处理进w
int fjw=0;
for (int i=0;i<a.size()*b.size()+2;i++)
{
if (fjw+cc[i]>=10)
{
int tmp=cc[i];
cc[i]=(tmp+fjw)%10;
fjw=((tmp+fjw)/10)%10;
}
else
{
cc[i]=cc[i]+fjw;
fjw=0;
}
}
}
bool fg=0;
for (int i=max;i>=0;i--)
{
if (fg==0&&cc[i]!=0)
{
fg=1;
cout <<cc[i];
}
else if (fg==1)
{
cout <<cc[i];
}
}
return 0;
}