Maison >développement back-end >C++ >À l'aide de la programmation C++, trouvez le nombre d'arrêts
Il y a n gares intermédiaires entre le point X et le point Y. Calculez le nombre de façons différentes dont un train peut être disposé pour s'arrêter à s gares afin qu'aucune gare ne soit adjacente l'une à l'autre. C'est pourquoi, dans cet article, nous expliquerons différentes manières possibles de connaître le nombre d'arrêts. En regardant ce problème, nous pouvons voir que nous devons trouver des combinaisons qui permettent au train de s'arrêter à s gares.
Donnons un exemple : il y a huit gares intermédiaires et nous devons trouver un moyen d'arrêter le train à trois gares intermédiaires.
n = 8, s = 3
Nous avons aussi des (n - s) gares, soit cinq gares où le train ne peut pas s'arrêter,
Nous avons cinq gares A, B, C, D, E, où le train ne peut pas s'arrêter. Nous disposons maintenant de six points pour organiser les trois arrêts de manière à ce qu'il n'y ait pas deux arrêts consécutifs. Par conséquent, le nombre de façons est de -
6<sub>c<sub>3</sub></sub>= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20
Il existe 20 façons de programmer trois arrêts à partir du point X et du point Y. Voici donc l'exemple -
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
Afin de comprendre ce code C++, nous pouvons diviser la solution en plusieurs étapes.
prend le nombre de stations en nombre n et les stations d'arrêt en s comme entrée.
Initialisez les variables flag1 et flag 2 avec 1 et stockez la valeur de s dans la variable temp.
Calculez flag1, qui est le numérateur [fact(n) -fact(r)].
Calculez flag2, qui est le dénominateur [fact(r)]
Imprimez le résultat.
Dans cet article, nous avons résolu le problème de trouver le nombre de façons dont un train peut s'arrêter à une gare intermédiaire de telle sorte qu'il n'y ait pas deux gares consécutives. Nous avons également appris un programme C++ pour résoudre ce problème et une méthode complète pour résoudre ce problème. Nous pouvons écrire le même programme dans d’autres langages, tels que C, Java, Python et d’autres langages.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!