Heim > Backend-Entwicklung > C++ > Hauptteil

Eine in C++ geschriebene Anzahl von N Ziffern, die aus M Zahlen besteht und durch 5 teilbar ist

PHPz
Freigeben: 2023-09-02 16:25:06
nach vorne
944 Leute haben es durchsucht

Eine in C++ geschriebene Anzahl von N Ziffern, die aus M Zahlen besteht und durch 5 teilbar ist

Wir erhalten eine Zahl N und eine Reihe von M Ziffern. Unsere Aufgabe ist es, n Zahlen zu finden Eine durch 5 teilbare Zahl, die aus den angegebenen M Ziffern besteht.

Sehen wir uns einige Beispiele an, um den Input und Output des Problems zu verstehen.

In -

N = 2
M = 3
arr = {5, 6, 3}
Nach dem Login kopieren

Out -

2
Nach dem Login kopieren
Nach dem Login kopieren

Es gibt 2 N-Zahlen 35 und 65, die gleichmäßig durch 5 teilbar sein können. Schauen wir uns ein anderes Beispiel an.

Eingabe -

N = 1
M = 7
arr = {2, 3, 4, 5, 6, 7, 8}
Nach dem Login kopieren

Ausgabe -

1
Nach dem Login kopieren

Nur 1 einstellige Zahl im angegebenen Array ist durch 5 teilbar. Daher besteht unsere Aufgabe darin, die Anzahl der Zahlen zu ermitteln, die bei gegebenen N Zahlen durch 5 teilbar sind. < /p>

Zahlen müssen mit der Ziffer 0 oder 5 enden, um durch 5 teilbar zu sein. Sehen wir uns den Algorithmus

Algorithmus

  • an, der im angegebenen Array nach 0 und 5 sucht. 2. Wenn sowohl 0 als auch 5 vorhanden sind, gibt es zwei Möglichkeiten, die Zahl an der Einsenstelle einzufügen. Ansonsten gäbe es eine Möglichkeit, die Zahlen zu platzieren.
    • Zählung initialisieren bis 2.
    • Jetzt können die verbleibenden Positionen m - 1, m - 2, m - 3, ... n Möglichkeiten haben, sie jeweils zu besetzen.
    • Schreiben Sie eine Schleife, die von 0 bis n - 1 iteriert.
      • Reduzieren Sie das Array.
      • Multiplizieren Sie es mit der Anzahl.
  • Wenn Sie eine einzelne Zahl haben, 0 oder 5, gibt es nur eine Möglichkeit, die Zahl an die Einerstelle zu setzen.
    • Zählung initialisieren bis 2.
    • Jetzt können die verbleibenden Positionen m - 1, m - 2, m - 3, ... n Möglichkeiten haben, sie jeweils zu besetzen.
    • Schreiben Sie eine Schleife, die von 0 bis n - 1 iteriert.
      • Reduzieren Sie das Array.
      • Multiplizieren Sie es mit der Anzahl.
  • Wenn es keine Zahl 0 oder 5 gibt, dann können wir eine Zahl bilden, die durch 5 teilbar ist. Gibt zu diesem Zeitpunkt -1 zurück.

Implementierung

Das Folgende ist die C++-Implementierung des obigen Algorithmus

#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;
}
Nach dem Login kopieren

Ausgabe

Wenn Sie den obigen Code ausführen, erhalten Sie die folgenden Ergebnisse.

2
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEine in C++ geschriebene Anzahl von N Ziffern, die aus M Zahlen besteht und durch 5 teilbar ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage