zjy1412 @ 2019-09-18 21:35:59
以下是我的代码,可能有点杂(考虑了负数),不过luogu就是过不去,改了好久了,求助!!!```cpp
using namespace std; int x[2001],y[2001],ans[4000001]; bool fu=true; int main(){ int nx=0,ny=0,rem,nans=0; char a; a=getchar(); while(a!='\n'){ if(a==' '){a=getchar(); continue;} if(a=='-')fu=!fu; else{ nx++; x[nx]=a-48;} a=getchar(); } for(int i=1;i<=nx/2;i++){ swap(x[i],x[nx-i+1]); } a=getchar(); while(a!='\n'&&a!=' '){ if(a=='-')fu=!fu; else { ny++; y[ny]=a-48;} a=getchar(); } for(int i=1;i<=ny/2;i++){ swap(y[i],y[ny-i+1]); } for(int i=1;i<=nx;i++) for(int t=1;t<=ny;t++){ rem=0; ans[t+i-1]=ans[t+i-1]+x[i]*y[t]; if(ans[t+i]>=10){rem=ans[t+i-1]/10; ans[t+i-1]%=10; } ans[t+i]=ans[t+i]+rem; } for(int i=1;i<=nx+ny+1;i++){ if(ans[i]>=10){ans[i+1]=ans[i+1]+ans[i]/10; ans[i]%=10; } if(ans[i]>0)nans=i; } if(nans==0){ cout<<0; return 0;} if(!fu)cout<<"-"; for(int i=nans;i>=1;i--){ cout<<ans[i];} return 0; }
by zjy1412 @ 2019-09-18 22:01:41
@QQ893531942 我不知道为什么,改了对1个点,其他的明明也是自己测没问题
by zjy1412 @ 2019-09-18 22:05:05
顶一下
by Fraction @ 2019-09-18 22:14:44
血与泪的教训告诉我们
请用
scanf("%s", s+1);
不要用
s[i] = getchar();
by zjy1412 @ 2019-09-21 07:22:03
@Fraction 谢谢 我去试试
by rediserver @ 2020-05-28 16:40:00
我用getchar也爆0 改cpp用cin>>就ac了