Heim  >  Artikel  >  Backend-Entwicklung  >  Die Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann

Die Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann

PHPz
PHPznach vorne
2023-09-06 12:21:071080Durchsuche

Die Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann

In C++ haben wir eine Vektor-Header-Datei, die die Größe des Arrays zur Laufzeit ändern kann. In diesem Artikel lernen wir das Konzept kennen, wie oft ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann.

Nehmen wir ein Beispiel, um eine Array-Partition mit einer gleichen Summe zu zeigen.

Das gegebene Array ist {1,2,3,4,2}, wir teilen das Array in zwei Teile −

{1,2,3}- Die Gesamtsumme jedes Indexes eines Arrays beträgt 6,

{4,2} – Die Summe jedes Indexes des Arrays beträgt 6.

So kann das 2-fache der Größe eines bestimmten Arrays in Unterarrays mit gleichen Summen aufgeteilt werden.

Algorithmus

  • Wir starten das Programm mit den Header-Dateien ‘iostream‘ und ‘vector‘.

  • Jetzt starten wir das Programm, indem wir eine Klasse namens „isPartition_arr“ erstellen.

    Deklarieren Sie im öffentlichen Abschnitt einen Konstruktor mit dem Namen ‘isPartition_arr‘, der num als Parameter akzeptiert, um den Wert des Array-Elements aufzulösen.

  • Wir definieren eine Funktion namens ‘cnt_Partition‘ vom Ganzzahltyp, um die Gesamtzahl der Partitionierungen eines Arrays zu berechnen.

  • Wir initialisieren die Variable 'sum' auf '0', die später zum Summieren des Arrays verwendet wird, und speichern '0' in der Variablen 'count', die zur Nachverfolgung verwendet wird Die Array-Elemente erhöhen die Anzahl. Dann deklarieren Sie eine for-Schleife, um jedes Element des ‘arr’-Vektors zu durchlaufen.

  • Wir initialisieren die Variable ‘current_sum‘ auf ‘0‘ und iterieren über jedes Element mithilfe der for-Schleife

  • Nach Abschluss der for-Schleife beginnen wir mit der Verwendung einer while-Schleife, um jedes Element zu durchlaufen.

    Wenn 'current_sum' gleich 'sum/2' ist, wird der Zähler um '1' erhöht und 'current_sum' auf '0' zurückgesetzt. Als nächstes wird durch die Rückgabe von ‘cnt’ gezählt, wie oft das Array gleichmäßig geteilt werden kann.

  • Wir beginnen mit der Hauptfunktion und erstellen einen ‘num‘-Vektor vom Typ Integer, um den Wert des Arrays zu speichern.

  • Dann übergeben wir den ‘num‘-Wert, indem wir das Objekt der Klasse erstellen. Als nächstes rufen wir die Funktion ‘cnt_partition‘ auf, indem wir das Objekt nehmen und es in der Variablen ‚c‘ speichern Schließlich drucken wir die Ausgabeanweisung mit Hilfe der Variablen

    ‚c‘
  • .
  • als „Anzahl der Male, in denen ein Array in zwei Unterarrays mit gleicher Summe aufgeteilt werden kann“ aus Die chinesische Übersetzung von Beispiel

    lautet:
  • Beispiel

In diesem Programm ermitteln wir, wie oft ein Array wiederholt in zwei Unterarrays aufgeteilt werden kann, sodass ihre Summen gleich sind.

#include <iostream>
#include <vector>
using namespace std;
class isPartition_arr {
   public:
   vector<int> arr;
   isPartition_arr(vector<int>& num) {
      arr = num;
   }
   int cnt_Partition() {
      int sum = 0, count = 0;
      for (int i = 0; i < arr.size(); i++) {
         sum += arr[i];
      }
      int current_sum = 0, j=0;
      while( j < arr.size() ) {
         current_sum += arr[j];
         if (current_sum == sum / 2) {
            current_sum = 0;
            count++;
         }
         j++;
      }
      return count;
   }
};
int main() {
   vector<int> num = {1, 2, 3, 4, 5, 5};
   isPartition_arr A(num);
   int c = A.cnt_Partition();
   cout <<"Number of times an array can be partitioned into\t"<< c <<"\t two subarrays with equal sum " << endl;
   return 0;
}

Ausgabe

Number of times an array can be partitioned into   2   two subarrays with equal sum 

Fazit

Wir haben das Konzept der Array-Aufteilung mit gleicher Summe untersucht und gelernt, wie man ein Array in verschiedene Teile aufteilt und die Summe gleich macht. Wir verwenden objektorientierte Konzepte, um dieses Problem zu lösen, da der Code besser lesbar ist und ein C++-Programm effizienter definiert werden kann.

Das obige ist der detaillierte Inhalt vonDie Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen