Rumah > Artikel > pembangunan bahagian belakang > Menggunakan pengaturcaraan C++, cari bilangan hentian
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.
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,
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
#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
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.
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!