PAT1027 列印沙漏 解題始末

2021-07-27 15:36:23 字數 1360 閱讀 9148

先說一下做這道題的總體感覺吧。

一開始,哇,這題好難啊,根本無從下手好嗎!

仔細琢磨了一會兒,找出了規律,就一步一步開始寫。

中間一卡殼,就想,這裡不會是需要用我沒學過的知識吧?然後埋頭接著用我學過的知識想辦法……

最後,寫完,把題設所給測試用例通過後,哇,這道題好簡單啊。

然後提交,咦,怎麼還有兩個測試點「格式錯誤」。

找原因沒找到,不會是標準答案給錯了吧?_

題幹部分:

本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個「*」,要求按下列格式列印

所謂「沙漏形狀」,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。

給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能用掉盡可能多的符號。

輸入格式:

輸入在一行給出1個正整數n(<=1000)和乙個符號,中間以空格分隔。

輸出格式:

首先列印出由給定符號組成的最大的沙漏形狀,最後在一行中輸出剩下沒用掉的符號數。

輸入樣例:

19 *

輸出樣例:

2解答:

剛一看到這道題,感覺好難啊,無從下手後經過觀察,發現了規律:等差數列。

然後,推導出了「給定符號總數」和沙漏最長一行的符號個數的關係。

接著就是怎麼輸出沙漏了。這個點又構思了很長時間。中間去吃了個飯。回來接著想。

後來想到了,把沙漏一分為二。先輸出上半部分,再輸出下半部分。

然後就寫出來了。

最後,除錯,找漏洞。

覺得沒問題了,就提交。測試點1和4顯示「格式錯誤」。在這一點又耗費了一些時間,最終還是沒找出原因。

然後不得不在網上搜尋了一下,看到有博主提示不要輸出多餘的空格,我才想到我的****錯了。

好,下面是**:

PAT 1027 列印沙漏

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先...

PAT 1027 列印沙漏

本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序遞減到1,再從小到大順序遞增 首尾符號數相等。給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能用掉盡可能...

PAT 1027 列印沙漏

1027.列印沙漏 20 時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相...