■■C++で大きな数を作るスレ■■
■ このスレッドは過去ログ倉庫に格納されています
0507デフォルトの名無しさん
2010/11/10(水) 21:32:53int a=9e99;
template<class T>
void max(T *t){t=new T[a+1];for(int i=0;i<a;i++)max(t[i]);t[a]=NULL;}
void max(int *t){t=new int[a+1];for(int i=0;i<a;i++)t[i]=a;t[a]=-1;}
template<class T>
bool next(T *t){while(t&&!next(*t))max(*t++);return !t;}
bool next(int *t){while(!*t)*t++=a;if(*t==-1)return 0;*t--;return 1;}
template<class T>
T *dup(T *t){int i,j;for(i=0;t[i]!=NULL;i++);T *x=new T[i+1];for(j=0;j<i;j++)x[j]=dup(t[j]);x[i]=NULL;return x;}
int *dup(int *t){int i,j;for(i=0;t[i]!=-1;i++);int *x=new int[i+1];for(j=0;j<i;j++)x[j]=t[j];x[i]=-1;return x;}
template<class T>
void f(T *t)
{
a<<=a<<a;
if(next(t)){for(int i=a;i--;){f(dup(t));}}
}
int main()
{
int *****************************t;
f(max(t));
return a;
}
■ このスレッドは過去ログ倉庫に格納されています