x 点和 y 点之间有 n 个中间火车站。计算可以安排火车在 s 个车站停靠的不同方式的数量,使得没有两个车站彼此相邻。因此,在本文中,我们将解释各种可能的方法来找出停靠站的数量。看看这个问题,我们可以发现我们需要找到可以让火车在 s 个站点停靠的组合。
解决问题的方法
让我们举个例子:有八个中间站,我们需要找到让火车在三个中间站停下的方法。
n = 8, s = 3
登录后复制
我们还有 (n – s) 个车站,即火车无法停靠的五个车站,
我们有五个车站 A、B、C、D、E,火车不能停靠。现在我们有六个点来安排三个停靠站,使得没有两个站是连续的。因此,方法的数量是 –
立即学习“C++免费学习笔记(深入)”;
6c3= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20
登录后复制
有 20 种方法可以从 X 点和 Y 点安排三个停靠站。所以这里是示例 –
Input : n = 15 s = 4Output : 495Input : n = 8 s = 3Output : 20
登录后复制
Example
的中文翻译为:
示例
#includeusing namespace std;int main(){ int n = 8, s = 3; int flag1 = 1, flag2 = 1, temp = s, ans; // selecting 's' positions out of 'n-s+1' int x = n - s + 1; while (x != (n - 2 * s + 1)) { flag1 = flag1 * x; x--; } while (temp != 1) { flag2 = flag2 * temp; temp--; } ans = flag1 / flag2; if ((n - s + 1) >= s) cout输出
Number of ways : 20登录后复制
上述代码的解释
为了理解这段C++代码,我们可以将解决方案分为几个步骤。
取数字n 中的车站数量和 s 中的停止车站作为输入。
用 1 初始化 flag1 和 flag 2 变量,并将 s 的值存储在 temp 中变量。
计算flag1,它是分子[fact(n) -fact(r)]。
计算flag2,它是是分母[fact(r)]
打印结果。
结论
在此在这篇文章中,我们解决了一个问题,找出火车可以在中间站停靠的方式数量,使得没有两个站是连续的。我们还学习了解决这个问题的C++程序以及解决这个问题的完整方法。我们可以用其他语言编写相同的程序,例如C、java、python等语言。
以上就是使用C++编程,找到停靠站的数量的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2580839.html