#include
using namespace std;
const int N=1000000005;
int a[N][N];
int main()
{
a[1][1]=1;
int n;
cin>>n;
if(n==1)
{
cout<<1<return 0;
}
for(int i=2;ifor(int j=1;j<=i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
if(a[i][j]==n)
{
cout<-1)/2+j<return 0;
}
}
}
}
int a[N][N]
如果N=20000
那么数组占用内存就是420K20K=1600MB也就是1.6GB,如果你的编译器是32bit的,32bit的进程最大内存是2GB。