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