c++算法题 坐电梯 数据结构

小G 来到了著名的CIGOM 大厦。大厦一共有n 层,初始的时候小G 在第A
层。小G 特别想去B 层小M 的办公室看一看,然而因为安保原因,B 层已经被
封锁无法进入。
但是小G 既然来了,就想在大厦里面逛一逛。大厦里面有一部电梯,小G 决
定坐k 次电梯。因为小G 比较无聊,他给自己设定了这样一个规矩:假如当前他
在x 层,则他要去的下一个楼层y 和x 的楼层差必须要小于x 和B 的楼层差。每到达一个楼层,小G 都要记录下来其楼层号。
当小G 转完一圈后,他也记录下了k +1 个楼层号(可能有重复)。小G 现在想知道,按照他定下的规矩,一共有多少种可能的楼层号序列?

输入格式

输入文件一行,4 个数字n; A;B; k,含义如题目所述。

输出格式

输出一个数字,表示可能的楼层号序列的数量。答案对109 + 7 取模。

样例输入
5 2 4 1
样例输出
2

c++
1

2个回答

首先 ,这是一个数学题;其次这肯定还要对y和x的差值分类(即下一层在此楼上还是下),可以使用分支语句,分支后根据给定的条件找出y的范围(y-x<x-B)),y确定后就好办了;使用两重循环找出所有的组合,然后累加,当然期间还要去除相同排列的情况。
另一种情况也相同。

1

求代码QwQ图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!