Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20017 | 陈路垚 | 最大乘积 | C++ | 通过 | 100 | 0 MS | 268 KB | 627 | 2021-05-27 21:55:28 |
#include<iostream> #include<cstdio> using namespace std; int main() { int i,j,x,len=0,len1=0,tot=0,a[1000]={0},ans=0; int cj[1000]={0}; cin>>x; for(i=2;tot+i<=x;++i){ ++len; tot+=i; a[len]=i; } len1=len; x=x-tot; for(i=x;i>=1;--i){ a[len1]++; len1--; } if(x>len)a[len]++; cj[1]=a[1];len1=1; for(i=2;i<=len;++i){ for(j=1;j<=len1;++j) cj[j]=cj[j]*a[i]; for(j=1;j<=len1;++j){ cj[j+1]+=cj[j]/10; cj[j]%=10; } while(cj[len1+1]>0){ len1++; cj[len1+1]=cj[len1]/10; cj[len1]%=10; } } for(i=1;i<=len1;++i)ans+=cj[i]; cout<<ans<<endl; return 0; }