思路如下:
(1)先列印乙個星號並換行
print("(2)列印一行6個星號*")
for i in range(6):(3)列印6列星號print("
*", end="
")
for i in range(6):(4)列印6行6列print("
*")
# 每列印一行就換行
print()
(5)金字塔型是由下面圖形轉成的,先列印此圖形
控制內層迴圈的列印。觀察上圖,發現如下規律:
則讓內層迴圈 j<=i,就可以實現。i 控制行數,j 控制列數。比如:當 i=0 時,內層迴圈1次,j=0,j<=i,當 j++ 時,就跳出內層迴圈;當 i=1 時,記憶體迴圈2次,j=0 和 j=1 的情況,當 j=1,j++,則 j=2,j<=i 則不成立,跳出記憶體迴圈。以此類推。
for i in range(6):(6)當 jfor j in range(i+1):
print("
*",end="")
print()
(7)空格和星號相結合的情況,完整金字塔就是被空格頂過去的。
列印6個空格,後跟星號
for i in range(6):每行5個空格,後跟乙個星號print("
", end="")
print("
*")
*")有了以上的基礎,下面分析列印完整金字塔型:
(8)根據下圖所示,我們已經可以列印出左邊的圖形,然後通過控制空格,把它轉成右邊的圖形。
觀察後發現如下規律,右邊圖形相對於左邊的圖形。行數仍然是6行,即 i=6,先不考慮空格的問題,每一行星星的個數,如下所示:
可以得出:j<=(2*i)。當i=0時,j=0,列印乙個星號,必須j<=,參考上面的講解;當i=1時,j=2,因為是j<=i,j取值0,1,2,迴圈三次,列印3個星號。以此類推。
(9)在(8)的基礎上,插入空格。對比發現,如下規律:
再加一層內迴圈,在星號內迴圈的前面,先列印空格,然後再列印相應的星號。
可以得出:k<6-i-1;當 i=0 時,k<5,k取值0,1,2,3,4,迴圈5次,列印5個空格。依次類推。
for i in range(6):(10)菱形的上半部分已經列印出,下面考慮如何列印下半部分,for k in range(5-i):
print("
",end="")
for j in range(2*i+1):
print("
*", end="")
print()
最上面的11個星號,已經在上半部分給出,只考慮列印11個星號以下的圖形。如圖:
觀察發現,下半部分共5行,即 i=5 。有如下的規律,如下圖所示:
空格記憶體迴圈,k
(9-3*i)+i,是如何得出?通過數學歸納法,發現:
for i in range(5):(11)完整的菱形,通過(10)和(11),我們已經可以列印出完整的菱形。for k in range(i+1):
print("
", end="")
for m in range((9-3*i)+i):
print("
*",end="")
print()
for i in range(6):for k in range(5-i):
print("
",end="")
for j in range(2*i+1):
print("
*", end="")
()for i in range(5):
for k in range(i+1):
print("
", end="")
for m in range((9-3*i)+i):
print("
*",end="")
print()
正直角三角形
在平面直角座標系的第一象限內有m個點。正直角三角形 是一種奇特的三角形,它的三個頂點分別在原點 x軸的正方向和y軸的正方向。請用乙個面積最小的 正直角三角形 將這些點全部圍住,求解面積的大小。題目中所有的座標 包括正直角三角形的頂點座標 都為整數。input 1 m,xi,yi 100 每行乙個答案...
for 迴圈列印直角三角形 正三角形 稜形
熟練掌握 for 迴圈的使用 1 需求 列印直角三角形 如下 左直角 for int i 0 i 5 i system.out.println 右直角 for int i 0 i 5 i for int j 0 j i j system.out.println 執行效果 process finish...
模擬 直角三角形
平面上給定n個兩兩不同的整點,統計以給定的點為頂點,且直角邊平行於座標軸的直角三角形數。輸入格式 輸入檔案right.in第一行為乙個整數n。以下n行,每行給出乙個點的座標。輸出格式 輸出檔名為right.out。輸出乙個整數表示統計結果。輸入樣例 1 0 0 0 11 0 1 1 輸出樣例 1 4...