藍橋杯 回型巢狀 遞迴 解題報告

2021-06-28 21:03:38 字數 890 閱讀 1529

觀察這個圖形,它是由一系列正方形的星號方框巢狀而成。

在上邊的例子中,最外方框的邊長為11。

本題的任務就是從標準輸入獲得乙個整數n(1

程式輸出:

輸入:6

程式輸出:

記得以前做過乙個類似的列印圖形的的題目,都是大圖套小圖,這種題目首先要找到規律,然後再確定要使用的方法,對於這種列印巢狀相似圖形的題目,一般都是使用遞迴,因為迴圈的話不好控制迴圈層數,首先遞迴到最底層,然後列印最裡面的圖形,然後回溯列印外面的圖形,規律也很容易看到,每次向裡面走一層,邊長就減4,然後再看每個圖形左上角的起點,如果第乙個起點為(0,0),第二個是(2,2),第三個是(4,4)。。。以此類推,有了起點,有了邊長,就可以很輕鬆的列印出每乙個圖形,在列印圖形的時候,可以單獨處理第一行和最後一行,因為這兩行是需要全部列印的,中間的部分只要列印兩個點就可以了,這種處理方法可以應對所有的情況,包括只列印乙個字元和列印四個字元這兩種比較特別的情況,處理之前,要先把整個二維陣列初始化成空格,這樣就不用處理整個圖形中的空格了。

#includeusing namespace std;

char map[101][101];

void paint(int len,int time)

{ if(len<=0)

return;

paint(len-4,time+1);

int x;

int i,j;

x=2*time;

for(i=x;i>n)

{ init();

paint(n,0);

for(i=0;i

藍橋杯 砝碼稱重 遞迴 解題報告

5個砝碼 用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有5個砝碼,重量分別是1,3,9,27,81。則它們可以組合稱出1到121之間任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。例如 使用者輸入 5程式輸出 9 3 1 ...

藍橋杯 黑洞數 解題報告

任意乙個5位數,比如 34256,把它的各位數字打亂,重新排列,可以得到乙個最大的數 65432,乙個最小的數23456。求這兩個數字的差,得 41976,把這個數字再次重複上述過程 如果不足5位,則前邊補0 如此往復,數字會落入某個迴圈圈 稱為數字黑洞 比如,剛才的數字會落入 82962,7593...

藍橋杯 花朵數 解題報告

乙個n位的十進位制正整數,如果它的每個位上的數字的n次方的和等於這個數本身,則稱其為花朵數。例如 當n 3時,153就滿足條件,因為 1 3 5 3 3 3 153,這樣的數字也被稱為水仙花數 其中,表示乘方,5 3表示5的3次方,也就是立方 當n 4時,1634滿足條件,因為 1 4 6 4 3 ...