將斐波那契數列按照從大到小,順時針的順序存放在n*n
的方陣中,n=3
的情況如下圖所示:
先生成斐波那契數列的陣列,讓後將陣列按照要求存放:
n=
int(
input()
)def
fib(n)
:#生成斐波那契陣列
if n==1:
return[1
]if n==2:
return[1
,1] res=[1
,1]for i in
range(2
,n):1]
+res[i-2]
)return res
deftrans
(res,n)
:#轉化為要求的格式
length=res.__len__(
) tab=[[
0]*n for i in
range
(n)]
layer=
0 count=
0while
2*layer<=n:
for c in
range
(layer,n-layer)
: tab[layer]
[c]=res[length-
1-count]
count=count+
1for r in
range
(layer+
1,n-layer)
: tab[r]
[n-layer-1]
=res[length-
1-count]
count=count+
1for c in
range
(n-layer-
2,layer-1,
-1):
tab[n-layer-1]
[c]=res[length-
1-count]
count=count+
1for r in
range
(n-layer-
2,layer,-1
):tab[r]
[layer]
=res[length-
1-count]
count=count+
1 layer=layer+
1return tab
res=trans(fib(n*n)
,n)for i in
range
(n):
for j in
range
(n):
print
(res[i]
[j],end=
' ')
print
()
**執行結果:輸入4
,輸出結果如下:
斐波那契蛇
斐波那契蛇題目 將斐波那契數列按照矩陣排列,左上角為最大元素,依次按照蛇形順時針遞減,是乙個n n的矩陣,如圖所示 要求輸入n,輸出斐波那契蛇形矩陣 解題步驟 主要用到遞迴思想,首先用動態規劃方法生成斐波那契數列,然後用遞迴方法將斐波那契數列按照蛇形矩陣儲存為二維陣列,每次儲存蛇形矩陣的四條外邊,所...
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
python 斐波那契?
description 給出乙個數列的遞推公式,希望你能計算出該數列的第n個數。遞推公式如下 f n f n 1 f n 2 f n 3 其中,f 1 2,f 2 3,f 3 5.很熟悉吧,可它貌似真的不是斐波那契數列呢,你能計算出來嗎?input 輸入只有乙個正整數n n 4 output 輸出只...