■■C++で大きな数を作るスレ■■
■ このスレッドは過去ログ倉庫に格納されています
0337デフォルトの名無しさん
2009/12/19(土) 23:12:05o のチェーンの長さより a の方が大きく、
o のチェーンの長さ分 f を再帰コールしてるだけなので、
以下で良い気がする。
----------------
int a;
void f(int o){int *e,*p,*q,*x;
x=new int[a+1];e=x+a;
for(p=x;p<e;p++)*p=a;*p=-1;
for(;;){for(p=x;!*p;p++);
if(*p==-1)return;
for(q=x;q<p;q++)*q=a;
(*p)--;a<<=a;if(o)f(o-1);}}
int main()
{
a=99;
for(int i=a;i--;)f(a);
return a;
}
■ このスレッドは過去ログ倉庫に格納されています