Python藍橋杯練習 歷屆試題 打印十字圖

題目

問題描述
樣例輸入輸出

思路

最初我是沒有看出什么規(guī)律的谍肤,但是如果將圖案畫在本子上,就可以看出端倪了(字符顯示有一些失真)哗伯。
從最中間開始看樣例1荒揣,最中間的是一個由' $ '組成的十字架,向外圍看焊刹,又由一層' . '圍了起來系任,在外圍又由' $ '圍起來,以此類推虐块。
一層包括了最中間的五個長度的' $ '十字架和外面一層' . '和一層' $ '
問題描述中的為三層俩滥,包括最中間的五個長度的' $ '十字架和外面三層' . '和三層' $ '
這樣規(guī)律便找到了!:氐臁霜旧!~

實現(xiàn)

我看到其他人將圖形分為了四塊,每塊中又分為上中下三部分儡率,之后依次按照每個部分打印


分塊

我的思路是從中間開始的,所以我想到先用數(shù)組(列表)占用內(nèi)存,再從中間向外邊填充(默認所有都是點洗显,填充$),而且這樣可能時間復雜度較高一些...姑且這么做把

規(guī)模是 5+2*2*層數(shù)玖媚,5是中心十字架的長度,第一個2是對稱性婚脱,第二個2是一層' $ '一層' . '
最中心的行是 3+層數(shù)*2今魔,列也是這樣(第一行開始算起)(代碼從第0行)

每涂一層,都要遍歷整個網(wǎng)格障贸,將他們周邊的(以已經(jīng)涂色的為中心错森,3*3的小網(wǎng)格)沒有涂過的,涂為另一種符號篮洁,每次涂一層
當層數(shù)為1時涩维,涂一層' . ',涂一層' $ '
當層數(shù)為2時袁波,涂一層' . '瓦阐,涂一層' $ ',涂一層' . '篷牌,涂一層' $ '
在輸出時睡蟋,將未涂色的和涂色為2的顯示輸出為' . ',將涂色為1的輸出為' $ '

Python實現(xiàn)源代碼

n=int(input())

lst=[[0 for j in range(5+4*n)] for i in range(5+4*n)]

# 0代表未涂色
# 1代表$
# 2代表.

for i in range(-2,3):
    lst[2+2*n][2+2*n+i]=1   # 中心行
for i in range(-2,3):
    lst[2+2*n+i][2+2*n]=1   # 中心列



def paint(color):
    # 將$的外層變?yōu)?
    if(color==1):
        for i in range(5+4*n):
            for j in range(5+4*n):
                if(lst[i][j]==1):
                    for u in range(-1,2):
                        for v in range(-1,2):
                            if(i+u>=0 and i+u<5+4*n and j+v>=0 and j+v<5+4*n):
                                if(lst[i+u][j+v]==0):
                                    lst[i+u][j+v]=2
    # 將.的外層變?yōu)?
    else:
        for i in range(5+4*n):
            for j in range(5+4*n):
                if(lst[i][j]==2):
                    for u in range(-1,2):
                        for v in range(-1,2):
                            if(i+u>=0 and i+u<5+4*n and j+v>=0 and j+v<5+4*n):
                                if(lst[i+u][j+v]==0):
                                    lst[i+u][j+v]=1

for i in range(n):
    paint(1)
    paint(2)

for i in range(5+4*n):
    for j in range(5+4*n):
        if(lst[i][j]==1):
            print("$",end="")
        else:
            # 最后會有角落未涂色枷颊,但都是輸出.
            print(".",end="")
    print()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末戳杀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子夭苗,更是在濱河造成了極大的恐慌信卡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件题造,死亡現(xiàn)場離奇詭異傍菇,居然都是意外死亡,警方通過查閱死者的電腦和手機晌梨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門桥嗤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仔蝌,你說我怎么就攤上這事』睦簦” “怎么了敛惊?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绰更。 經(jīng)常有香客問我瞧挤,道長锡宋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任特恬,我火速辦了婚禮执俩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘癌刽。我一直安慰自己役首,他們只是感情好,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布显拜。 她就那樣靜靜地躺著衡奥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪远荠。 梳的紋絲不亂的頭發(fā)上矮固,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音譬淳,去河邊找鬼档址。 笑死,一個胖子當著我的面吹牛邻梆,可吹牛的內(nèi)容都是我干的守伸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼确虱,長吁一口氣:“原來是場噩夢啊……” “哼含友!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起校辩,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤窘问,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宜咒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惠赫,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年故黑,在試婚紗的時候發(fā)現(xiàn)自己被綠了儿咱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡场晶,死狀恐怖混埠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诗轻,我是刑警寧澤钳宪,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響吏颖,放射性物質(zhì)發(fā)生泄漏搔体。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一半醉、第九天 我趴在偏房一處隱蔽的房頂上張望疚俱。 院中可真熱鬧,春花似錦缩多、人聲如沸呆奕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽登馒。三九已至,卻和暖如春咆槽,著一層夾襖步出監(jiān)牢的瞬間陈轿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工秦忿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留麦射,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓灯谣,卻偏偏與公主長得像潜秋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胎许,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354