X 點和 Y 點之間有 n 個中間火車站。計算可以安排火車在 s 個車站停靠的不同方式的數量,使得沒有兩個車站彼此相鄰。因此,在本文中,我們將解釋各種可能的方法來找出停靠站的數量。看看這個問題,我們可以發現我們需要找到可以讓火車在 s 個站點停靠的組合。
讓我們舉個例子:有八個中間站,我們需要找到讓火車在三個中間站停下來的方法。
n = 8, s = 3
我們還有(n - s) 個車站,也就是火車無法停靠的五個車站,
我們有五個車站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
有 20 種方法可以從 X 點和 Y 點安排三個停靠站。所以這裡是範例-
Input : n = 15 s = 4 Output : 495 Input : n = 8 s = 3 Output : 20
#include<bits/stdc++.h> using 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 : " << ans; else cout << "not possible to find"; return 0; }
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++編程,找到停靠站的數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!