A27193. 编程实现:现有22名小朋友,依次编号1到22,22名小朋友分别按照下图的位置站好。每名小朋友只能按照图中箭头指向的方向移动。给出两名小朋友的编号N和M(1≤N<M≤22),请你找出从编号N到编号M共有多少条不同的路线。例如:N=3,M=7,从编号3的位置到编号7的位置共有5条路线,分别为:(3->5->7),(3->5->6->7),(3->4->5->7),(3->4->5->6->7),(3…
填空题
较难
知识点
题目描述
编程实现:
现有22名小朋友,依次编号1到22,22名小朋友分别按照下图的位置站好。

每名小朋友只能按照图中箭头指向的方向移动。给出两名小朋友的编号N和M(1≤N<M≤22),请你找出从编号N到编号M共有多少条不同的路线。
例如:N=3,M=7,从编号3的位置到编号7的位置共有5条路线,分别为:(3->5->7),(3->5->6->7),(3->4->5->7),(3->4->5->6->7),(3->4->6->7)。
输入
输入两个正整数N和M(1≤N<M≤22),分别表示两名小朋友的编号,之间以一个空格隔开
输出
输出一个整数,表示从编号N到编号M共有多少条不同的路线
输入样例
3 7
1输出样例
5参考答案
n,m = [int(x) for x in input().split()]
s = 0 #路线总数
def search(n,cur):
global s
if cur==m: #累加和等于m
s += 1
return
elif cur>m: #累加和大于m,组合无效
return
else:
search(n,cur+2)
search(n,cur+1)
search(n,n)
print(s)答案解析
从n出发到m,每次可以走1步或2步,路线就是不同走法的组合
n = 3, m = 7
组合1:3+2+2 = 7
组合2:3+2+1+1 = 7
组合3:3+1+2+1 = 7
组合4:3+1+1+2 = 7
组合5:3+1+1+1+1 = 7
上一题
下一题