斐波那契蛇 Python實現

2021-10-23 15:57:28 字數 1655 閱讀 6752

將斐波那契數列按照從大到小,順時針的順序存放在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 輸出只...