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

Un nombre de N chiffres composé de M nombres divisible par 5 écrit en C++

PHPz
Libérer: 2023-09-02 16:25:06
avant
924 Les gens l'ont consulté

Un nombre de N chiffres composé de M nombres divisible par 5 écrit en C++

On nous donne un nombre N et un tableau de M chiffres. Notre travail consiste à trouver n nombres Un nombre divisible par 5 composé des M chiffres donnés.

Voyons quelques exemples pour comprendre l'entrée et la sortie du problème.

In -

N = 2
M = 3
arr = {5, 6, 3}
Copier après la connexion

Out -

2
Copier après la connexion
Copier après la connexion

Il y a 2 N nombres 35 et 65 qui peuvent être divisibles également par 5. Regardons un autre exemple.

Entrée -

N = 1
M = 7
arr = {2, 3, 4, 5, 6, 7, 8}
Copier après la connexion

Sortie -

1
Copier après la connexion

Seul 1 nombre à 1 chiffre dans le tableau donné est divisible par 5. Par conséquent, notre tâche est de trouver le nombre de nombres divisibles par 5 donnés N nombres. < /p>

Les nombres doivent se terminer par le chiffre 0 ou 5 pour être divisible par 5. Voyons l'algorithme

Algorithme

  • vérifie 0 et 5 dans le tableau donné. 2. S’il y a à la fois 0 et 5, il existe deux façons de mettre le nombre à la place des uns. Sinon, il y aurait un moyen de placer les chiffres.
    • Initialisez le compte à 2.
    • Maintenant, les postes restants peuvent avoir m - 1, m - 2, m - 3, ... n façons de les pourvoir respectivement.
    • Écrivez une boucle qui itère de 0 à n - 1.
      • Réduisez le tableau.
      • Multipliez-le avec le nombre.
  • Si vous avez un seul chiffre 0 ou 5, il n'y a qu'une seule façon de mettre le numéro à la place des uns.
    • Initialisez le compte à 2.
    • Maintenant, les postes restants peuvent avoir m - 1, m - 2, m - 3, ... n façons de les pourvoir respectivement.
    • Écrivez une boucle qui itère de 0 à n - 1.
      • Réduisez le tableau.
      • Multipliez-le avec le nombre.
  • S'il n'y a pas de nombre 0 ou 5, alors nous pouvons former un nombre divisible par 5. Renvoie -1 à ce moment.

Implémentation

Ce qui suit est l'implémentation C++ de l'algorithme ci-dessus

#include <bits/stdc++.h>

using namespace std;

int numbers(int n, int m, int arr[]) {
   bool isZeroPresent = false, isFivePresent = false;
   int numbersCount = 0;
   if (m < n) {
      return -1;
   }
   for (int i = 0; i < m; i++) {
      if (arr[i] == 0) {
         isZeroPresent = true;
      }
      if (arr[i] == 5) {
         isFivePresent = true;
      }
   }
   if (isZeroPresent && isFivePresent) {
      numbersCount = 2;
      for (int i = 0; i < n - 1; i++) {
         m--;
         numbersCount = numbersCount * m;
      }
   } else if (isZeroPresent || isFivePresent) {
      numbersCount = 1;
      for (int i = 0; i < n - 1; i++) {
         m--;
         numbersCount = numbersCount * m;
      }
   } else {
      return -1;
   }
   return numbersCount;
}
int main() {
   int arr[] = {5, 6, 3};
   cout << numbers(2, 3, arr) << endl;
   return 0;
}
Copier après la connexion

Sortie

Si vous exécutez le code ci-dessus, vous obtiendrez les résultats suivants.

2
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!