分型的遞迴輸出

2021-10-05 08:57:27 字數 2579 閱讀 5441

分形,具有以非整數維形式充填空間的形態特徵。通常被定義為「乙個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都(至少近似地)是整體縮小後的形狀」,即具有自相似的性質。

乙個盒狀分形定義如下: 度為1的盒分形為:

x度為2的盒分形為:

x xx

x x依次類推,如果b(n-1)表示n-1度的盒分形,則n度的盒分形遞迴定義如下:

b(n - 1) b(n - 1)

b(n - 1)
b(n - 1) b(n - 1)

請畫出度為n的盒分形的圖形

輸入格式:

輸入一系列度,每行給出乙個不大於7的正整數。輸入的最後一行以-1表示輸入結束

輸出格式:

對於每個用例,輸出用』x』標記的盒狀分形。在每個測試用例後輸出包含乙個短劃線「-」的一行。

輸入樣例:12

34-1輸出樣例:

注意:每行的空格請輸出完整x_

x xx

x x_

x x x x

x xx x x x

x xx

x xx x x x

x xx x x x

_x x x x x x x x

x x x x

x x x x x x x x

x x x x

x xx x x x

x x x x x x x x

x x x x

x x x x x x x x

x x x x

x xx x x x

x xx

x xx x x x

x xx x x x

x x x x x x x x

x x x x

x x x x x x x x

x x x x

x xx x x x

x x x x x x x x

x x x x

x x x x x x x x

_問題分析

n度分型的規模為3 ^ (n-1) * 3^(n-1)的正方形 ,所以我們用陣列來盛放圖形。用遞迴法。對於每個分型的小分型的邊長為

m=3 ^ (n-2) ,也是正方形。設左下標的座標為(x,y),其它圖形座標如圖所示

解法

我用了兩種方法

法一:是先直接把度為7(最大為7)的分型算出來,放到陣列裡,然後每次輸入n時,就可以直接輸出陣列裡的圖形,而不用再呼叫函式了。用這種方法是因為本題中不只輸入乙個n,它不斷地輸入n,我們就需要不斷地呼叫函式,那我就想讓它就呼叫一次,所以我先把度為7的分型算出來,輸入n時只需輸出陣列就行了。適用於輸入的n比較多時

法二:輸入乙個n,則呼叫一次函式。適用於輸入的n比較少時。

法一**

#include

#include

#include

#define max 750

//7度n形分盒,最大規模為3^6=739.

char a[max]

[max]

;void

print

(int n,

int x,

int y)

}int

main()

}print(7

,0,0

);int n;

scanf

("%d"

,&n)

;while

(n!=-1

)printf

("\n");

}printf

("_\n");

scanf

("%d"

,&n);}

return0;

}

法二:

#include

#include

#define max 750

//7度n形分盒,最大規模為3^6=739.

char a[max]

[max]

;void

print

(int n,

int x,

int y)

}int

main()

}print

(n,0,0

);//輸出

for(

int k=

0;k)//直接一行輸出

printf

("%s\n"

,a[k]);

printf

("-\n");

scanf

("%d"

,&n);}

return0;

}

注意在main函式中,第乙個for迴圈中 a[i][len]=』\0』是字串結束標誌,這簡便了輸出圖形,如果不設定它的話輸出時候會用到兩個for迴圈,而這個只需乙個就行了。但是在法一中不能用,這是因為a[i][len]=』\0』 是要佔據乙個空間的,而法一中每個陣列空間都是固定的,不能變化了。

分形的遞迴輸出

分形,具有以非整數維形式充填空間的形態特徵。通常被定義為 乙個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都 至少近似地 是整體縮小後的形狀 即具有自相似的性質。乙個盒狀分形定義如下 度為1的盒分形為 x度為2的盒分形為 x x xx x依次類推,如果b n 1 表示n 1度的盒分形,則n度的...

分形的遞迴輸出

分形,具有以非整數維形式充填空間的形態特徵。通常被定義為 乙個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都 至少近似地 是整體縮小後的形狀 即具有自相似的性質。乙個盒狀分形定義如下 度為1的盒分形為 x度為2的盒分形為 x xx x x依次類推,如果b n 1 表示n 1度的盒分形,則n度的...

遞迴 PTA分形的遞迴輸出

分形,具有以非整數維形式充填空間的形態特徵。通常被定義為 乙個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都 至少近似地 是整體縮小後的形狀 即具有自相似的性質。乙個盒狀分形定義如下 度為1的盒分形為 x度為2的盒分形為 x xx x x依次類推,如果b n 1 表示n 1度的盒分形,則n度的...