python京東筆試題象棋馬走到指定位置方法數

2021-08-18 12:51:03 字數 1130 閱讀 2105

#給定中國象棋棋譜10行9列。有一馬,初始位置為(0,0),問走到指定位置有多少種走法,x軸0-8,y軸0-9,左下角位置為(0,0)

#採用回溯法

#馬的初始位置

start = [0,0]

#馬的最終位置

end =[0,0]

#指定馬走的步數

step = 2

#馬的八個方向

axes = [[1,2],[1,-2],[2,1],[2,-1],[-1,2],[-1,-2],[-2,1],[-2,-1]]

#新建空的列表當做棧,便於出棧,進棧

startx=

starty=

m=0def horse_run(k):

global m

for each in axes:

#先走一步後判斷,走到指定步數停止,且到達指定位置

if k == step and sum(startx) == end[0] and sum(starty) == end[1]:

m += 1

print('第%d種情況馬的走法'% m,[(k,v) for k,v in zip(startx,starty)])

#沒有走完指定步數,走到邊界外,這些不滿足情況的

else:

if k < step and 0<=sum(startx) and sum(startx) <=8 and 0<=sum(starty) and sum(starty)<=9:

horse_run(k+1)

#走完指定步數,但沒有到達指定位置,刪除最後乙個位置,以便下一次接收下一次位置

startx.pop()

starty.pop()

horse_run(1)

print(m)

結果:

第1種情況馬的走法 [(1, 2), (-1, -2)]

第2種情況馬的走法 [(2, 1), (-2, -1)]

2

馬從初始位置到初始位置的走法,且只能走兩步。

總共有兩種方法,看圖:

京東筆試題

剛才看到一篇京東筆試題,又見無聊題,俗稱智力題,下面我們就看看。1.說一架飛機可以飛50公尺,但是現在需要其飛100公尺,飛機之間可以互相加油。問是要飛完一共需要派出幾架飛機 首先飛機快飛到25公尺處時派出一架飛機從起點起飛,同時到達25公尺處,加完油後可以可以飛到75公尺,快到75公尺時從終點派出...

2020 08 06 京東筆試題

題目描述 x星人的基因由a b c d e五種不同的結構組合而成。如果兩個性別不同的x星人的基因序列相似度大於50 按照x星的法律他們是禁止結婚的,等於50 據說還是可以的。那麼基因的相似度怎麼計算呢?分別從兩個人身上取長度均為n的基因片段,如果它們的最長公共子串行 注意,最長公共子串行不需要連續 ...

京東筆試題總結

1.談談優雅降級與漸進增強的區別。漸進增強 progressive enhancement 針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高階瀏覽器進行效果 互動等改進和追加功能達到更好的使用者體驗。優雅降級 graceful degradation 一開始就構建完整的功能,然後再針對低...