天天看點

【2020HBU天梯賽訓練】7-14 福到了 1.先判斷是否不用轉換2.其實就算不用轉換我也轉換着輸出了哈3.轉換是左右上下全交換,一開始我了解錯了但是竟然過了2 3 測試點是以沒有想到這裡的問題,後面才排查出來。

“福”字倒着貼,寓意“福到”。不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由一個 N × N 的網格組成的,網格中的元素或者為字元

@

或者為空格。而倒過來的漢字所用的字元由裁判指定。

輸入格式:

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

@

或者為空格。

輸出格式:

輸出倒置的網格,如樣例所示。但是,如果這個字正過來倒過去是一樣的,就先輸出

bu yong dao le

,然後再用輸入指定的字元将其輸出。

輸入樣例 1:

$ 9
 @  @@@@@
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@           

複制

輸出樣例 1:

$$$$$  $ 
$ $ $  $ 
$$$$$ $$$
$ $ $ $$$
$$$$$ $$$
 $$$  $$$
 $ $   $ 
 $$$  $$$
$$$$$  $            

複制

輸入樣例 2:

& 3
@@@
 @ 
@@@           

複制

輸出樣例 2:

bu yong dao le
&&&
 & 
&&&           

複制

1.先判斷是否不用轉換

2.其實就算不用轉換我也轉換着輸出了哈

3.轉換是左右上下全交換,一開始我了解錯了但是竟然過了2 3 測試點是以沒有想到這裡的問題,後面才排查出來。

#include <iostream>
#include <vector>
using namespace std;
int main() {
    int flag=0;
    char c;
    int n;
    cin>>c>>n;
    getchar();
    vector<string> v(n);
    for(int i=0;i<n;i++)getline(cin,v[i]);
    for(int i=0;i<n&&flag==0;i++){
        for(int j=0;j<v[i].size();j++) if(v[i][j]!=v[n-1-i][n-1-j])flag =1;
    }if(!flag)cout<<"bu yong dao le"<<endl;
    for(int i=n-1;i>=0;i--){
        for(int j=0;j<n;j++){
            if(v[i][n-1-j]!=' ')cout<<c;
			else cout<<' ';
        }if (i>0) cout<<endl;
    }
    return 0;
}           

複制