ホームページ > バックエンド開発 > C++ > C++ プログラミングを使用して、ストップの数を見つけます。

C++ プログラミングを使用して、ストップの数を見つけます。

WBOY
リリース: 2023-09-20 15:13:01
転載
1311 人が閲覧しました

X 点と Y 点の間には n 個の中間駅があります。 2 つの駅が隣接しないように列車を s 駅に停止するように配置できるさまざまな方法の数を計算します。そこでこの記事では、停車駅の数を調べるさまざまな方法について説明します。この問題を見ると、電車が s 駅に停止できる組み合わせを見つける必要があることがわかります。

問題の解決方法

例を挙げましょう: 8 つの中間駅があり、3 つの中間駅で列車を停止する方法を見つける必要があります。

n = 8, s = 3
ログイン後にコピー

また、(n - s) 駅、つまり電車が停止できない駅が 5 つあります。

C++ プログラミングを使用して、ストップの数を見つけます。

駅 A、B が 5 つあります。 、C、D、E、電車は止まらない。これで、2 つのストップが連続しないように 3 つのストップを配置するための 6 つの点ができました。したがって、方法の数は -

6<sub>c<sub>3</sub></sub>= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20
ログイン後にコピー

になります。X 点と Y 点から 3 つの停留所をスケジュールする方法は 20 通りあります。例の中国語訳は次のとおりです -

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20
ログイン後にコピー

Example

は次のとおりです:

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;
}
ログイン後にコピー

Output

Number of ways : 20
ログイン後にコピー

上記のコードの説明

この C コードを理解するには、ソリューションをいくつかのステップに分割します。

  • 番号 n の駅数と s の停車駅を入力として受け取ります。

  • flag1 変数と flag 2 変数を 1 で初期化し、s の値を temp 変数に格納します。

  • 分子 [fact(n) -fact(r)] である flag1 を計算します。

  • 分母である flag2 を計算 [fact(r)]

  • 結果を出力します。

結論

この記事では、2 つの駅が連続しないように列車が中間駅に停止できる方法の数を見つける問題を解決しました。また、この問題を解決するための C プログラムと、この問題を解決するための完全な方法も学びました。同じプログラムを、C、Java、Python などの他の言語で作成できます。

以上がC++ プログラミングを使用して、ストップの数を見つけます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート