Maison > développement back-end > C++ > le corps du texte

À l'aide de la programmation C++, trouvez le nombre d'arrêts

WBOY
Libérer: 2023-09-20 15:13:01
avant
1291 Les gens l'ont consulté

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.

Solution au problème

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
Copier après la connexion

Nous avons aussi des (n - s) gares, soit cinq gares où le train ne peut pas s'arrêter,

À laide de la programmation C++, trouvez le nombre darrêts

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
Copier après la connexion

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
Copier après la connexion

Exemple

La traduction chinoise est :

Exemple

#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;
}
Copier après la connexion

Sortie

Number of ways : 20
Copier après la connexion

Explication du code ci-dessus

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.

Conclusion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal