2017年12月25日 星期一

b025: 棋盤格城市

b025: 棋盤格城市


有一個棋盤格城市,所有的街道都是東西向或是南北向,而且每一段的距離都一樣。小綠住在這棋盤格城市(0,0) 座標的位置,今天她想要到 (x,y) 這個位置,只可以往上或往右移動,請問她總共有幾種走法?



輸入說明:
輸入兩個整數 x、y (0<=x、y<=32)。
輸出說明:
請輸出從 (0,0) 到 (x,y) 有幾種走法。
範例輸入:
輸入1:
2 3

輸入2:
8 10
範例輸出 :
輸出1:
10

輸出2:
43758

"""
給定一個m*n的格子或棋盤,問從左下角走到右上角的走法總數(每次只能向右或向上移動一個方格邊長的距離)
解答:
把棋盤看做二維座標,
設f(m,n)代表從座標(0,0)到座標(m,n)的移動方法,則
f(m,n)=f(m-1,n)+f(m,n-1)
初始為f(0,0)=0,f(0,1)=1,f(1,0)=1
"""

def blockmatrix( m , n):
    if(m == 0 and n == 0):
        return 0
    elif(m == 1 and  n == 0):
        return 1
    elif (m == 0 and n == 1):
        return 1
    elif (m == 0):
        return blockmatrix(m,n-1)
    elif (n == 0):
        return blockmatrix(m-1,n)
    else:
        return blockmatrix(m,n-1)+blockmatrix(m-1,n)

print("座標(0,0)到座標(m,n),請輸入 m,n 並以逗號 分開  : ")
m, n  = map(int,input().split(','))
print("(0,0)到座標(m,n)的移動方法,共有", blockmatrix(m,n),"種")


====================== RESTART: F:/Python_APSC/b025.py ======================
座標(0,0)到座標(m,n),請輸入 m,n 並以逗號 分開  : 
3,4
(0,0)到座標(m,n)的移動方法,共有 35 種
>>> 
====================== RESTART: F:/Python_APSC/b025.py ======================
座標(0,0)到座標(m,n),請輸入 m,n 並以逗號 分開  : 
8,10
(0,0)到座標(m,n)的移動方法,共有 43758 種
>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...