啊这个乘法我真的想不起来了
所以我跑去看了之前交的代码
那个时候的我真纯真啊,用cin cout都不关同步的
哪像现在,随手先写个inline void in(),能getchar()就不scanf,能putchar()就不printf
用时20:58.5真是无敌丢人了
我一直在用
3939*831
debug,调了半天没找出问题。
无奈忍痛(guide的调试真的很卡)看变量,才发现累乘的+=我写成=了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define al a[0]
#define bl b[0]
#define cl c[0]
using namespace std;
string s1,s2;
int a[2005],b[2005],c[2005<<3];//a*b=c
int main()
{
ios::sync_with_stdio(false);
cin>>s1>>s2;
al=s1.length();
bl=s2.length();
for(int i=1;i<=al;i++)
a[i]=s1[al-i]-'0';
for(int i=1;i<=bl;i++)
b[i]=s2[bl-i]-'0';
if((al==1 and a[1]==0) or (bl==1 and b[1]==0))//特判0
{
putchar('0');
return 0;
}
cl=(al+bl)<<1;
for(int i=1;i<=al;i++)
for(int j=1;j<=bl;j++)
c[i+j-1]+=a[i]*b[j];
for(int i=1;i<=cl;i++)
c[i+1]+=c[i]/10,c[i]%=10;
while(!c[cl])
cl--;
for(int i=cl;i;i--)
putchar(c[i]+'0');
return 0;
}