有只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:记f(n)为跳n阶台阶的跳法种数,显然f(1)=1,f(2)=2。例如,青蛙要调到第4台阶,只有3种情况:第一种,青蛙可从第1台阶调到第4台阶。第二种,青蛙可从第2台阶调到第4台阶。第三种,青蛙可从第3台阶调到第4台阶。所以有f(4)=f(3)+f(2)+f(1),综上可得:f(n)=f(1)+f(2)+…+f(n-2)+f(n-1),令n=n-1可得f(n-1)=f(1)+f(2)+…+f(n-3)+f(n-2),两式相减得到f(n)=2f(n-1),即f(n)=2^(n-1)。
代码:
from math import pow
def forg_jump(n):
if n == 1:
return 1
else:
return int(pow(2, n - 1))
while True:
num = int(input("Pls input: "))
print(forg_jump(num))