您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Python中怎么實現一個等腰三角形,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1. 先用1,2,3,...的自然數拼一個足夠長的串
2. 用這個串填充三角形的三條邊。從上方頂點開始,逆時針填充。
比如,當三角形高度是8時:
1
2 1
3 8
4 1
5 7
6 1
7 6
891011121314151
要求:空格一律用"."代替。
輸入格式:
一個正整數n(3<n<300),表示三角形的高度
輸出格式:
用數字填充的等腰三角形。
輸入樣例:
5
輸出樣例:
....1
...2.1
..3...2
.4.....1
567891011
輸入樣例:
10
輸出樣例:
.........1
........2.2
.......3...2
......4.....2
.....5.......1
....6.........2
...7...........0
..8.............2
.9...............9
1011121314151617181
解決方案
(1)確定三角形拼接的范圍:因為三角形是一個自然數拼接成的串,所以我們先確定不同層數對應到的自然數,觀察兩個案例(從上到左下到右再到上)可知:5層到13,10層到23(均未到最后一個自然數的最后一個值是因為第一層只有一個自然數)。所以n層則會從1拼接到2n+3。
(2)每一行第一個數字前的空格數:觀察題目給出的兩個輸出案例可以發現每一行第一個數前面的空格數為輸出三角形的高(n) - 第幾層。
(3)每一行的第一個數剛好和層數相等。
(4)第2到第n層兩個數之間的空格數:從第二層開始所以有i-2,每一層增加兩個即(i-2)* 2,又因起始數量為1,所以規律是(i-2)* 2 – 1。
(5)第2到第n層第二個數的確定:因為從上到下的第二個數字是拼接的串的逆序且第一層只有一個數字,所以第n層的第二個數字為拼接串的倒數第n個數字。
(6)最后一層即為拼接串的第n個數到倒數第n個數。
解決代碼
n = int(input()) lis1 = "".join(str(i) for i in range(1, 2 * n + 4)) print("." * (n - 1) + lis1[0]) # 第一層 for i in range(2, n): # 第2到n-1層 print("." * (n - i) + lis1[i-1] + "." * ((i - 2) * 2 + 1) + lis1[-i]) print(lis1[n - 1: -n+1]) # 最后一層 |
運行實例
看完上述內容,你們對Python中怎么實現一個等腰三角形有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。