天梯賽習題 福到了(遞迴列印)

2021-09-12 15:51:39 字數 1608 閱讀 3623

l1-054 福到了 (15 分)

「福」字倒著貼,寓意「福到」。不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由乙個 n × n 的網格組成的,網格中的元素或者為字元 @ 或者為空格。而倒過來的漢字所用的字元由裁判指定。

輸入格式:

輸入在第一行中給出倒過來的漢字所用的字元、以及網格的規模 n (不超過100的正整數),其間以 1 個空格分隔;隨後 n 行,每行給出 n 個字元,或者為 @ 或者為空格。

輸出格式:

輸出倒置的網格,如樣例所示。但是,如果這個字正過來倒過去是一樣的,就先輸出bu yong dao le,然後再用輸入指定的字元將其輸出。

輸入樣例 1:

$ 9

@ @@@@@

@@@ @@@

@ @ @

@@@ @@@

@@@ @@@@@

@@@ @ @ @

@@@ @@@@@

@ @ @ @

@ @@@@@

輸出樣例 1:

$$$$$  $ 

$ $ $ $

$$$$$ $$$

$ $ $ $$$

$$$$$ $$$

$$$ $$$

$ $ $

$$$ $$$

$$$$$ $

輸入樣例 2:

& 3@@@

@ @@@

輸出樣例 2:

bu yong dao le

&&& &

&&&

【思路】

不是非常難的題,用遞迴能很輕鬆解掉,關鍵是注意一下坑點就行了。

字元讀入的時候會將輸入末尾的回車符也讀進去,要想不讓回車進行干擾,就用getchar函式在必要的時候讀掉回車即可!

ac**:

#include

using namespace std;

char ch;

int len;

int n;

int g;

//邊界

const

int maxn =

102;

char a[maxn]

[maxn]

;char b[maxn]

[maxn]

;voidf(

int k)

//f函式,把第k排以下的部分都倒過去

if(k != n)

//base case: k == g

f(k +1)

;}bool judge()

}return true;

}int

main()

getchar()

;//讀回車

}

len = n +1;

f(1)

;if(judge()

)//加個判斷即可

for(

int i =

1;i <= n;i++

) cout << endl;

}return0;

}

PTA天梯賽訓練題 福到了

福 字倒著貼,寓意 福到 不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由乙個 n n 的網格組成的,網格中的元素或者為字元 或者為空格。而倒過來的漢字所用的字元由裁判指定。輸入在第一行中給出倒過來的漢字所用的字元 以及網格的規模 n 不超過100的正整數 其間...

pat天梯賽L1 054 福到了

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 福 字倒著貼,寓意 福到 不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由乙個 n x n 的網格組成的,網格中的元素或者為字元 或者為空格。而...

PAT 天梯賽 L1 054 福到了(模擬)

本題要求倒著輸出,輸出時換成另乙個字元,所以就在剛輸入到陣列 第乙個陣列 的時候下手,輸入的是空格,那麼新陣列 第二個 就是空格,輸入的是字元,那麼新陣列是另乙個要求的字元,最後橫縱座標都倒過來就完成倒著輸出了。因為還要判斷倒過來和原來的形式是否是一樣的,這就需要又乙個新陣列 第三個 新陣列的內容是...