5 12 列印沙漏 20分

2021-07-31 16:02:33 字數 800 閱讀 3976

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

*****

**** ***

*****

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

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

輸入在一行給出1個正整數n(≤\le

≤1000)和乙個符號,中間以空格分隔。

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

19 *

*****

**** ***

*****

2

解析:可以發現組成沙漏的字元個數c,和沙漏上半部分(加上一行只有乙個的字元,組成三角形的模樣)的層數n, 有這這樣的聯絡:c = 2 * n * n - 1。然後根據這個公式和輸入的資料,先算出沙漏的規模和多餘的字元,其餘的就是如何輸出的問題了(一行行輸出,每行先輸出空格,再輸出字元,共三個迴圈)

#include #include int main () 

//輸出下半部分,只需修改最外層的迴圈

for(k = level - 1; k > 0; k--)

printf("%d", remain);

return 0;

}

1027 列印沙漏 (20 分)

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

1027 列印沙漏 (20 分)

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

1027 列印沙漏 (20 分)

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