90分,大佬带我

P1249 最大乘积

```cpp #include<bits/stdc++.h> using namespace std; _long long a,b=1,c=0;_ int y[20001],m=20000; void p(int x) { y[0]=1; for(int i=2;i<=x;i++) { for(int k=0;k<20001;k++) { y[k]*=i; } for(int k=0;k<20001;k++) { if(y[k]>9) { y[k+1]+=y[k]/10; y[k]%=10; } } } } int main() _{_ cin>>a; if(a==3) { cout<<1<<" "<<2<<endl<<2; return 0; } if(a==4) { cout<<1<<" "<<3<<endl<<3; return 0; } if(a==5) { cout<<2<<" "<<3<<endl<<6; return 0; } if(a>5) { while(c<a) { b++; c=c+b; } if(c==a) { for(int i=2;i<=b;i++) { cout<<i<<" "; } cout<<endl; p(b); bool f=0; for(m=20000;m>=0;m--) { if(y[m]!=0) { f=1; } if(f) { cout<<y[m]; } } } if(c==a+1) { y[0]=1; for(int i=3;i<=b+1;i++) { if(i==b) { continue; } cout<<i<<" "; for (int k=0;k<20001;k++) { y[k]*=i; } for(int k=0;k<20001;k++) { if(y[k]>=10) { y[k+1]+=y[k]/10; y[k]%=10; } } } cout<<endl; for(m;m>=0;m--) { cout<<y[m]; } } if(c>a+1) { long long p=c-a; y[0]=1; for(int i=2;i<=b;i++) { if(i==p) { continue; } cout<<i<<" "; for(int k=0;k<20001;k++) { y[k]*=i; } for (int k=0;k<20001;k++) { if (y[k]>9) { y[k+1]+=y[k]/10; y[k]%=10; } } } cout << endl; while(y[m]==0&&m>0) { m--; } for(m;m>=0;m--) { cout<<y[m]; } } } return 0; }
by xingcode @ 2022-11-25 17:56:27


```cpp c==a的时候有问题 应去掉前缀0; QWQ
by xingcode @ 2022-11-25 17:57:42


我也90分,最后一个测试点过不了
by mjxznu @ 2022-12-15 22:52:55


|