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

Menggunakan pengaturcaraan C++, cari bilangan hentian

WBOY
Lepaskan: 2023-09-20 15:13:01
ke hadapan
1305 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

Number of ways : 20
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan