#題目:變態跳臺階(出題的人就是個變態,人家這是牛人)->一次可以跳任意臺階數,如一次跳1個臺階,2個臺階,3個臺階。。。
#因此,如果我們想要這個"變態"跳到第n個臺階的話,它有:
#"變態"跳到臺階1的跳法+"變態"跳到臺階2的跳法+"變態"跳到臺階3的跳法+...+ "變態"跳到臺階n-1的跳法 + 1(變態直接從0跳到n)
#這裏的"變態"跳到1,跳到2,跳到3...的跳法,指的是它第一步跳到這裏,第二步直接跳到臺階n,所以跳法總數是其跳到臺階1,臺階2,臺階3...的和
#而"變態"跳到臺階1的跳法 = 變態跳到臺階1的跳法(1:它能從臺階0跳來)
#"變態"跳到臺階2的跳法 = 變態跳到臺階2的跳法(2:它能從臺階0,臺階1跳來)
#同理,"變態"跳到臺階3的跳法 = 變態跳到臺階3的跳法(1(跳到臺階1) + 2(跳到臺階2) + 1(直接跳到3):它能從0,1,2三個臺階上跳來)
#因此,我們從"變態"它從哪來來,可以直接得到跳到臺階n的跳法數 = 跳到1 + 跳到2 + ... + 跳到n-1 + 1
import numpy as np
def JumpSteps(target):
#定義全是1的數組的意義是它代表着直接跳到n這裏的一種方法
steps = np.ones(target)
for i in range(1,target):
#計算跳到n的跳法
for j in range(0,i):
steps[i] += steps[j]
print("跳到各個臺階分別對應的跳法數如下所示:")
print(steps)
#將我們需要的跳到的目標臺階target所對應的跳法數返回
#因爲索引從0開始,索引目標數據在steps[target-1]
print("其中跳到第"+str(target)+"臺階對應跳法數是:")
return steps[target-1]
print("計算我們跳到第五個臺階有多少種跳法:")
print(int(JumpSteps(5)))