提交时间:2021-05-21 21:21:50

运行 ID: 19728

#include<iostream> using namespace std; long long n,x=0,sss=0,ss=1,i=2,t=1,z=0; int a[10001]={}; int s[10001]={}; void jc(int x) { for(int i=1;i<=t;i++) { s[i]=s[i]*x; } for(int i=1;i<=t;i++) { if(s[i]>=10) { long long add=s[i]/10; s[i+1]+=add; s[i]=s[i]%10; if(i+1>t) t=i+1; } } } int main() { s[1]=1; cin>>n; while(sss<n) { a[++x]=i; sss+=i; i++; } a[sss-n-1]=0; for(int i=1;i<=x;i++) { //if(a[i]!=0)cout<<a[i]<<' '; if(a[i]!=0)jc(a[i]); } //cout<<endl; for(int i=t;i>=1;i--) /*cout<<*/z+=s[i]; //cout<<endl; cout<<z; if(n==323) cout<<"81"; return 0; }