シェルピンスキーのフラクタルと呼ばれるフラクタルを表示するプロジェクトをcでコーディングしようとしています(ノードは「#」で表されます)。したがって、1-シェルピンスキーの三角形は次のようになります。
##
#
2シェルピンスキーの三角形
####
# #
##
#
など...これがどのように見えるかを見つけるためのリンクです: http ://fr.wikipedia.org/wiki/Triangle_de_Sierpiński
再帰的な方法だけで、ループなしで実行できると言われました。だから私は次のようなものを試しました:
//extracting the power of two's index
int puiss_2(int N){
int i=0,j=1;
for(i=0;i<N;i++){
j=j*2;
i++;
}
return j;
}
//the recursive method
void fractal(int N)
{
int M;
M= puiss_2(N);
if(M==0){
printf("##\n");
printf("# ");
}
else{
fractal(N-1);
fractal(N-1);
printf("\n");
fractal(N-1);
printf(" ");
}
}
int main()
{
int N;
scanf("%d",&N);
fractal(N);
}
もちろん、行にジャンプすると元に戻せないので、うまくいきませんでした。だから私がそれを2回呼ぶとき:
フラクタル(N-1); フラクタル(N-1);
2つの連続した動機が互いに並んで集められていません...誰かがそれを作る方法についての考えを持っていますか?それとも、アルゴのデザインが完全に間違っていたのでしょうか。