测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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

上一题 下一题