程式設計簡單模擬之 疊筐

2021-10-03 18:53:24 字數 1479 閱讀 8670

例題 2.5 疊筐(《計算機考研機試指南》p12)

題目描述

把乙個個大小差一圈的筐疊上去,由里到外看像乙個乙個的環

輸入

輸入乙個三元組,分別是:外筐的尺寸 n(大於 0 小於 80 的正奇數)、中心花色字元、外圍花色字元。

輸出

乙個疊筐的圖案

示例輸入

11 b a

5 @ w

示例輸出

aaaaaaaaa

abbbbbbbbba

abaaaaaaaba

ababbbbbaba

ababaaababa

abababababa

ababaaababa

ababbbbbaba

abaaaaaaaba

abbbbbbbbba

aaaaaaaaa

@@@@www@

@w@w@

@www@

@@@

【分析】方法一:

找到圖形構造的規律,發現其實上下左右對稱的,根據規律一行一行列印輸出。

方法二:

根據規律構造乙個二維陣列,根據規律往裡面填充字元,一次填充乙個圈,最後將整個二維陣列列印輸出。此方法整體複雜程度優於第一種。

【** 2.5 法一】

#include #include using namespace std;

int main(int argc, char const *ar**)

else

stackst1;

// 迴圈列印上 h/2 行

for (int i = 0; i < h/2; ++i)

elseelse

}} // 列印上三角

for (int k = i+1; k < h/2; ++k)

else

}} // 列印中間字元

if (i%2 == 0)

else

// 列印右邊對稱

while(!st2.empty())

printf("\n");

st1.push('\n');

} // 列印中間行

for (int i = 0; i < h; ++i)

else

} while(!st1.empty())

printf("\n");

return 0;

}

【總結】此方法利用堆疊簡化了部分**。總體圖案有行列組成,既有行對稱又有列對稱,對於每一行,只需要考慮左半部分,而左邊又由兩部分組成,可以看作是乙個上三角和乙個下三角。根據規律分別列印。將列印輸出的字元壓入乙個堆疊,即可得到右半部分對稱的圖案。上下對稱的部分同理。中間部分需要另外的邏輯單獨處理。此方法邏輯較為繁瑣,不推薦使用。

C語言程式設計練習35 疊筐

題目描述 把乙個個大小差一圈的筐疊上去,使得從上往下看時,邊筐花色交錯。這個工作現在要讓計算機來完成,得看你的了。輸入 輸入是乙個個的三元組,分別是,外筐尺寸n n為滿足0 輸出 輸出疊在一起的筐圖案,中心花色與外筐花色字元從內層起交錯相疊,多筐相疊時,最外筐的角總是被打磨掉。疊筐與疊筐之間應有一行...

winsock之 TCP IP的簡單程式設計

問題記錄 1.寫這個 的時候犯了乙個最低階的問題搞錯了優先順序。的優先順序要大於 的優先順序要大於 的優先順序,最好用括號來避免這種問題。2.在所有tcp伺服器中,在呼叫bind之前設定so reuseaddr套介面選項。一般來說 乙個埠釋放後會等待兩分鐘之後才能再被使用 so reuseaddr ...

C C 程式設計題之簡單密碼

密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈.接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo9441987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzhi1987,這個密碼是他的名字和出生年份,怎麼忘都忘不...