今天就跟大家聊聊有關(guān)Python中怎么實(shí)現(xiàn)一個等腰三角形,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)新吳免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1. 先用1,2,3,...的自然數(shù)拼一個足夠長的串
2. 用這個串填充三角形的三條邊。從上方頂點(diǎn)開始,逆時針填充。
比如,當(dāng)三角形高度是8時:
1
2 1
3 8
4 1
5 7
6 1
7 6
891011121314151
要求:空格一律用"."代替。
輸入格式:
一個正整數(shù)n(3 輸出格式: 用數(shù)字填充的等腰三角形。 輸入樣例: 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)確定三角形拼接的范圍:因?yàn)槿切问且粋€自然數(shù)拼接成的串,所以我們先確定不同層數(shù)對應(yīng)到的自然數(shù),觀察兩個案例(從上到左下到右再到上)可知:5層到13,10層到23(均未到最后一個自然數(shù)的最后一個值是因?yàn)榈谝粚又挥幸粋€自然數(shù))。所以n層則會從1拼接到2n+3。 (2)每一行第一個數(shù)字前的空格數(shù):觀察題目給出的兩個輸出案例可以發(fā)現(xiàn)每一行第一個數(shù)前面的空格數(shù)為輸出三角形的高(n) - 第幾層。 (3)每一行的第一個數(shù)剛好和層數(shù)相等。 (4)第2到第n層兩個數(shù)之間的空格數(shù):從第二層開始所以有i-2,每一層增加兩個即(i-2)* 2,又因起始數(shù)量為1,所以規(guī)律是(i-2)* 2 – 1。 (5)第2到第n層第二個數(shù)的確定:因?yàn)閺纳系较碌牡诙€數(shù)字是拼接的串的逆序且第一層只有一個數(shù)字,所以第n層的第二個數(shù)字為拼接串的倒數(shù)第n個數(shù)字。 (6)最后一層即為拼接串的第n個數(shù)到倒數(shù)第n個數(shù)。 解決代碼 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]) # 最后一層 運(yùn)行實(shí)例 看完上述內(nèi)容,你們對Python中怎么實(shí)現(xiàn)一個等腰三角形有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
當(dāng)前題目:Python中怎么實(shí)現(xiàn)一個等腰三角形
轉(zhuǎn)載注明:http://weahome.cn/article/jphhec.html