繞圈圈 面試題(Python經典程式設計案例)

2021-09-26 10:21:37 字數 1638 閱讀 5883

規律:①號轉彎線的行索引與列索引總和為n-1;

②號轉彎線的行索引與列索引相等;

③號轉彎線的行索引等於列索引減1;

**如下:

def

a_circle

(size)

: array =[[

0]* size]

# 建立乙個長度size * size的二維列表

for i in

range

(size -1)

: array +=[[

0]* size]

# 該orient代表繞圈的方向

# 其中0代表向下,1代表向右,2代表向左,3代表向上

orient =

0# 控制將1~size * size的數值填入二維列表中

# 其中j控制行索引,k控制列索引

j =0 k =

0for i in

range(1

, size * size +1)

: array[j]

[k]= i

# 如果位於圖4.2中①號轉彎線上

if j + k == size -1:

# j>k,位於左下角

if j > k:

orient =

1# 位於右上角

else

: orient =

2# 如果位於圖5.2中②號轉彎線上

elif

(k == j)

and(k >= size /2)

: orient =

3# 如果j位於圖5.2中③號轉彎線上

elif

(j == k -1)

and(k <= size /2)

: orient =

0# 根據方向來控制行索引、列索引的改變

# 如果方向為向下繞圈

if orient ==0:

j +=

1# 如果方向為向右繞圈

elif orient ==1:

k +=

1# 如果方向為向左繞圈

elif orient ==2:

k -=

1# 如果方向為向上繞圈

elif orient ==3:

j -=

1# 採用遍歷輸出上面的二維列表

for i in

range

(size)

:for j in

range

(size)

:print

('%02d '

% array[i]

[j], end ="")

print(""

)a =

int(

input

("請輸入乙個整數:"))

a_circle(a)

執行結果如下圖:

Python輸出乙個繞圈圈的矩陣

乙個小練習題,輸出如下規律的數字矩陣,從一開始先向下,再向右,再向上,最後向左,依次類推,繞圈圈輸出。01 16 15 14 13 02 17 24 23 12 03 18 25 22 11 04 19 20 21 10 05 06 07 08 09 獲取下乙個方向 def getnextflag ...

Python經典面試題

將字串列表 aycc kh llc u l 通過演算法處理為 y k c u l 對調首尾字串的位置,拼接字串列表中的字元,組成字串 lucky lst aycc kh llc u l 生成 3,2,1,1,1 這樣乙個索引列表 lst inde 2 i if 2 i 0else 1 for i i...

python程式設計面試題書籍 python程式設計面試題

實現需求為 註冊 登入 檢視暱稱的功能 def usern username input 請輸入賬號 n password input 請輸入密碼 n return username,password def register 註冊函式封裝 username,password usern temp ...