#給定中國象棋棋譜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 一開始就構建完整的功能,然後再針對低...