1. 程式人生 > >楊輝三角的新的演算法,Java初級

楊輝三角的新的演算法,Java初級

楊輝三角可以說是比較常見的程式問題,他的描述如下

楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的係數。

它的一個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。

簡單的說就是他的每一行的第一個和最後一個等於1;中間的等於他的上以行的一個加上上一行左邊的一個。

4行的楊輝三角如下:

1
1 1
1 2 1
1 3 3 1

 那麼我們和將他的每一行的第一個和最後一個區別開來就好可以求出楊輝三角,這就是比較常規的演算法之一

但是如果我們這麼看

0 1 0     //這一行並不是楊輝三角

0 1 0

0 1 1 0

0 1 2 1 0

0 1 3 3 1 0

此時,他的每一個都是等於自身的上一行加上上一行的前一個,當然0排除。新的程式碼如下:

有個值得一提的地方是,這個時候的陣列不再是n,而是n+1;不然會越界,第一行別有他用了。

之後輸出的楊輝三角與之前的程式輸出是一樣的,第二種方法只是把楊輝三角進行了進一步的統一,而實際上他的演算法並不比之前的要高明,甚至更為垃圾。

它開闢了n+1的二維陣列,比原來的演算法要開闢更多的空間,記憶體佔用更大。