Python實現:楊輝三角思路

來源:互聯網
上載者:User

標籤:nbsp   統一   orm   計算   info   int   http   aik   target   


 楊輝三角有以下幾個特點 :

  1. 每個數等於它上方兩數之和。
  2. 每行數字左右對稱,由1開始逐漸層大。
  3. 第n行的數字有n項。
  4. 第n行數字和為2n-1。
  5. 第n行的m個數可表示為 C(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。
  6. 第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。
            1          1   1        1   2   1      1   3   3   1    1   4   6   4   1  1   5   10  10   5    1    

    我的思路是由於第一行只有一個元素1,所以第二行也一定是1。所以重點在計算後面幾行輸出的數字,先把它輸進列表。

由可以知道第三行 列表第一個元素[2 ] 是第2行列表第0個元素和第一個元素的和,因為第0個元素一直是1不用管它,所以有l[a]=l[a]+l[a+1],由上一行輸出下一行,現在第三行

是[1,2],然後尾部加上一個[1],就可以得到第三行,列表長度也加了一個,依次類推第四行為[1,3,3],而後再加[1],輸出第四行,代碼實現如下

1 def yanghui(n):2     l=[1,1]3     for x in range(1,n):4         for a in range(x):5             l[a]=l[a]+l[a+1]6         l.insert(0,1)7     return l

    後面將每一行按照格式輸出即可,

再統一列印



1 x=int(input())2 a=13 b=04 print((x-a+1)*‘ ‘,[1])5 while a<x:6     b=yanghui(a)7     print((x-a)*‘ ‘,b)8     a+=1

比起需要用到產生器的演算法更好理解,也有些取巧了,可以作為一種思路



Python實現:楊輝三角思路

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.