各位大佬这道题本蒟蒻40分,哪位高手帮忙指正一下谢谢啦

P1249 最大乘积

高精度
by chaynflow @ 2023-02-25 12:35:17


@[Xcy20101213](/user/579261) long long会炸,要开高精
by Coffins @ 2023-02-25 12:39:01


呀~ 开了long long也会见祖宗哎
by lonely_conqueror @ 2023-02-25 13:11:24


大佬,我这该怎么用高精度改,希望各位大佬谁有时间,帮我这个蒟蒻改一下代码,谢谢啦
by Xcy20101213 @ 2023-02-25 14:08:53


代码: ```cpp #include<iostream> using namespace std; int a[5005],t=1,result[5005],lenr=5005; void fenjie(int n) { int s=0; for(int i=2;i<=n;i++) { if(s+i<=n) { a[t++]=i; s+=i; } else { a[t++]=i; int k=0; k=s+i-n; if(k==1) { a[1]=0; a[t-1]++; } else { for(int j=1;j<=i;j++) { if(a[j]==k) { a[j]=0; break; } } } break; } } } void xf() { for(int i=1;i<=t;i++) { if(a[i]==0)continue; int cur=0; for(int j=1;j<=lenr;j++) { cur=result[j]*a[i]+cur/10; result[j]=cur%10; } } while(result[lenr]==0&&lenr>1)lenr--;//计算lenr的值 } int main() { int n; cin>>n; if(n<=4) { cout<<n; return 0; } fenjie(n); result[1]=1; xf(); for(int i=1;i<=t;i++) if(a[i]) cout<<a[i]<<' '; cout<<endl; for(int i=lenr;i>=1;i--) cout<<result[i]; cout<<endl; return 0; } ```
by szy0609 @ 2023-06-03 19:29:39


|