使用 Python 中的楼梯查找我们可以到达下一层的多种方式的程序
假设有一个有N个台阶的楼梯。可以一步一步走,也可以每一步最多跳N步。我们必须找到可以到达顶层的多种方式。N值可能很大,我们只对路数的前K位和后K位感兴趣。
所以,如果输入像N=10k=2,那么输出将是63,因为有10个步骤,如果有S种方法可以到达顶部,那么考虑S的形式为wxyz.所以,wx+yz的总和是63。
示例
让我们看看以下实现以获得更好的理解-
from math import log10,ceil
def solve(N,k):
N -= 1
c = 2*ceil(k + log10(N))
e = N
b = 2
s = 1
while e > 0:
if e % 2 == 1:
s = int(str(s*b)[:c])
e //=2
b = int(str(b*b)[:c])
s = str(s)[:k]
r = int(s) + pow(2, N, 10**k)
return r
N = 10
k = 2
print(solve(N,k))输入
10, 2输出结果
63
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短