```
#include <stdio.h>
int main()
{
long long n;
scanf("%lld",&n);
long long now = 0;
long long count = 1;
long long last = 0;
long long normal = 0;
for(int i = 2;i < n;i++)
{
now = now + i;
if(now > n)
{
normal = i - 1;
last = n-now+i+i-1;
break;
}
}
for(int i = 2;i < normal;i++)
{
count = count * i;
printf("%lld ",i);
}
printf("%lld\n",last);
count = count*last;
printf("%lld",count);
return 0;
}
```
by _KaQqi @ 2019-03-09 11:52:24
@[_KaQqi](/space/show?uid=68055) 没记错的话这题好像要写高精……
by ywy_c_asm @ 2019-03-09 11:55:28
嗯是要高精
by ViXpop @ 2019-03-09 12:14:48
@[ywy_c_asm](/space/show?uid=125124) 如何做到高精度呢...
by _KaQqi @ 2019-03-09 12:17:12
```cpp
#include<bits/stdc++.h>
using namespace std;
struct bi{
static const int N=5000;
int a[N];
bi(){
memset(a,0,sizeof(a));
a[0]=1;
}
void print(){
for(int i=a[0];i>=1;i--)cout<<a[i];
}
bi operator * (const int b) const{
bi a=*this;
for(int i=a.a[0];i>=1;i--)a.a[i]*=b;
for(int i=a.a[0];i>=1;i--){
a.a[i+1]+=a.a[i]/10;
a.a[i]%=10;
if(a.a[a.a[0]+1])a.a[0]++;
}
while(a.a[a.a[0]]==0&&a.a[0]>1)a.a[0]--;
return a;
}
};
int main(){
int n;
cin>>n;
int sum=0,sz=0;
int a[10000];
for(int i=2;sum+i<=n;i++){
a[++sz]=i;
sum+=i;
}
int x=n-sum,pos=sz;
while(x--){
a[pos--]++;
if(pos==0)pos=sz;
}
bi T;
T.a[1]=1;
for(int i=1;i<=sz;i++){
cout<<a[i]<<" ";
T=T*a[i];
}
cout<<endl;
T.print();
}
```
包含一个高精模板
by nick_haoran @ 2019-04-13 20:46:39
```cpp
#include<bits/stdc++.h>
using namespace std;
struct bi{
static const int N=5000;
int a[N];
bi(){
memset(a,0,sizeof(a));
a[0]=1;
}
void print(){
for(int i=a[0];i>=1;i--)cout<<a[i];
}
bi operator * (const int b) const{
bi a=*this;
for(int i=1;i<=a.a[0];i++)a.a[i]*=b;
for(int i=1;i<=a.a[0];i++){
a.a[i+1]+=a.a[i]/10;
a.a[i]%=10;
if(a.a[a.a[0]+1])a.a[0]++;
}
while(a.a[a.a[0]]==0&&a.a[0]>1)a.a[0]--;
return a;
}
};
int main(){
int n;
cin>>n;
int sum=0,sz=0;
int a[10000];
for(int i=2;sum+i<=n;i++){
a[++sz]=i;
sum+=i;
}
int x=n-sum,pos=sz;
while(x--){
a[pos--]++;
if(pos==0)pos=sz;
}
bi T;
T.a[1]=1;
for(int i=1;i<=sz;i++){
cout<<a[i]<<" ";
T=T*a[i];
}
cout<<endl;
T.print();
}
```
刚刚写错了
by nick_haoran @ 2019-04-13 20:54:31