Rumah >pembangunan bahagian belakang >C++ >Menggunakan pengaturcaraan C++, cari bilangan hentian

Menggunakan pengaturcaraan C++, cari bilangan hentian

WBOY
WBOYke hadapan
2023-09-20 15:13:011301semak imbas

Terdapat n stesen kereta api perantaraan antara titik X dan titik Y. Kira bilangan cara yang berbeza di mana kereta api boleh diatur untuk berhenti di s stesen supaya tiada dua stesen bersebelahan antara satu sama lain. Oleh itu, dalam artikel ini, kami akan menerangkan pelbagai cara yang mungkin untuk mengetahui bilangan perhentian. Melihat kepada masalah ini, kita dapat melihat bahawa kita perlu mencari kombinasi yang membolehkan kereta api berhenti di stesen s.

Penyelesaian kepada masalah

Mari kita berikan contoh: terdapat lapan stesen perantaraan dan kita perlu mencari jalan untuk menghentikan kereta api di tiga stesen perantaraan.

n = 8, s = 3

Kami juga mempunyai (n - s) stesen, iaitu lima stesen di mana kereta api tidak boleh berhenti,

Menggunakan pengaturcaraan C++, cari bilangan hentian

Kami mempunyai lima stesen A, B, C, D, E, di mana kereta api tidak boleh berhenti. Sekarang kita mempunyai enam mata untuk mengatur tiga hentian supaya tiada dua hentian berturut-turut. Jadi bilangan cara ialah -

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

Terdapat 20 cara untuk menjadualkan tiga perhentian dari titik X dan titik Y. Jadi inilah contoh -

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20

Contoh

Terjemahan bahasa Cina ialah:

Contoh

#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

Penjelasan kod di atas

Untuk memahami kod C++ ini, kita boleh memecahkan penyelesaian kepada beberapa langkah.

  • mengambil bilangan stesen dalam nombor n dan stesen hentian dalam s sebagai input.

  • Mulakan flag1 dan bendera 2 pembolehubah dengan 1 dan simpan nilai s dalam pembolehubah temp.

  • Kira bendera1, iaitu pengangka [fakta(n) -fakta(r)].

  • Kira bendera2, yang merupakan penyebut [fakta(r)]

  • Cetak hasilnya.

Kesimpulan

Dalam artikel ini kami menyelesaikan masalah mencari bilangan cara kereta api boleh berhenti di stesen perantaraan supaya tiada dua stesen berturut-turut. Kami juga mempelajari program C++ untuk menyelesaikan masalah ini dan kaedah lengkap untuk menyelesaikan masalah ini. Kita boleh menulis program yang sama dalam bahasa lain, seperti C, java, python dan bahasa lain.

Atas ialah kandungan terperinci Menggunakan pengaturcaraan C++, cari bilangan hentian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam