Heim > Backend-Entwicklung > C++ > Ermitteln Sie mithilfe der C++-Programmierung die Anzahl der Stopps

Ermitteln Sie mithilfe der C++-Programmierung die Anzahl der Stopps

WBOY
Freigeben: 2023-09-20 15:13:01
nach vorne
1311 Leute haben es durchsucht

X 点和 Y 点之间有 n 个中间火车站。计算可以安排火车在 s 个车站停靠的不同方式的数量,使得没有两个车站彼此相邻。因此,在本文中,我们将解释各种可能的方法来找出停靠站的数量。看看这个问题,我们可以发现我们需要找到可以让火车在 s 个站点停靠的组合。

解决问题的方法

让我们举个例子:有八个中间站,我们需要找到让火车在三个中间站停下的方法。

n = 8, s = 3
Nach dem Login kopieren

我们还有 (n - s) 个车站,即火车无法停靠的五个车站,

Ermitteln Sie mithilfe der C++-Programmierung die Anzahl der Stopps

我们有五个车站 A、B、C、D、E,火车不能停靠。现在我们有六个点来安排三个停靠站,使得没有两个站是连续的。因此,方法的数量是 -

6<sub>c<sub>3</sub></sub>= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20
Nach dem Login kopieren

有 20 种方法可以从 X 点和 Y 点安排三个停靠站。所以这里是示例 -

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20
Nach dem Login kopieren

Example

的中文翻译为:

示例

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 8, s = 3;
    int flag1 = 1, flag2 = 1, temp = s, ans;
    // selecting &#39;s&#39; positions out of &#39;n-s+1&#39;
    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 : " << ans;
    else
       cout << "not possible to find";
    return 0;
}
Nach dem Login kopieren

输出

Number of ways : 20
Nach dem Login kopieren

上述代码的解释

为了理解这段C++代码,我们可以将解决方案分为几个步骤。

  • 取数字n 中的车站数量和 s 中的停止车站作为输入。

  • 用 1 初始化 flag1 和 flag 2 变量,并将 s 的值存储在 temp 中变量。

  • 计算flag1,它是分子[fact(n) -fact(r)]。

  • 计算flag2,它是是分母[fact(r)]

  • 打印结果。

结论

在此在这篇文章中,我们解决了一个问题,找出火车可以在中间站停靠的方式数量,使得没有两个站是连续的。我们还学习了解决这个问题的C++程序以及解决这个问题的完整方法。我们可以用其他语言编写相同的程序,例如C、java、python等语言。

Das obige ist der detaillierte Inhalt vonErmitteln Sie mithilfe der C++-Programmierung die Anzahl der Stopps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage