Inhaltsverzeichnis
Algorithmus zum Finden des längsten Subarrays mit GCD größer als 1
Syntax zum Finden des längsten Subarrays, dessen GCD größer als 1 ist
Methode:
C++-Programm zum Finden von Unterarrays mit dem längsten gemeinsamen Teiler größer als 1 mithilfe der naiven Methode
Beispiel 2
Ausgabe
C++-Programm zum Ermitteln des größten gemeinsamen Teilers eines Arrays größer als 1
Fazit
Heim Backend-Entwicklung C++ Das längste Subarray, dessen größter gemeinsamer Teiler größer als 1 ist

Das längste Subarray, dessen größter gemeinsamer Teiler größer als 1 ist

Sep 18, 2023 pm 10:17 PM
最大公约数 子数组

Das längste Subarray, dessen größter gemeinsamer Teiler größer als 1 ist

Ein Array ist eine Sammlung ähnlicher Daten, die zusammenhängend an benachbarten Speicherorten gespeichert sind. Durch die Definition des Offset-Werts als spezifischer Basiswert für die Datenbank ist es einfacher, die spezifische Position jedes Elements zu bewerten. Der Basiswert für diesen bestimmten Index ist Null und der Offsetwert ist die Differenz zwischen den beiden bestimmten Indizes. Ein Subarray ist Teil eines bestimmten Arrays und kann als eine Reihe von Variablen definiert werden, die mit mehreren Werten gekennzeichnet sind. Das längste Subarray bezieht sich auf ein Array, in dem alle Elemente im Array größer als K sind. Die Summe des maximalen Summen-Subarrays beträgt hier -

  • Weniger als

  • in einem bestimmten Datensatz
  • entspricht dem angegebenen Datensatz.

  • Weniger als

  • in einem bestimmten Datensatz

Um die Länge des längsten Subarrays zu ermitteln, müssen wir lediglich die Gesamtzahl der Einsen im jeweiligen Subarray ermitteln. HINWEIS: Die Anzahl sollte größer als die Anzahl Null sein. Der größte gemeinsame Teiler ist ein mathematisches Phänomen, bei dem wir den größten ganzzahligen Wert finden, der jede der eingegebenen ganzen Zahlen mit einem Rest von Null teilen kann. Dabei gilt die Bedingung, dass „der größte gemeinsame Teiler größer als 1“ ist. Dies bedeutet, dass diese bestimmte Zahl hier nur mindestens einen gemeinsamen Teiler zwischen den angegebenen Eingaben hat.

Input (array) : arr[] = {4, 3, 2, 2}
Output (after the process with sub-array operation) : 2
If we consider the subarray as {2, 2}, then we will get 2 as GCD. Which is > 1, is of maximum length.
Nach dem Login kopieren

Heute erfahren Sie in diesem Artikel, wie Sie mithilfe der C++-Programmierumgebung das längste Subarray finden, dessen größter gemeinsamer Teiler größer als 1 ist.

Algorithmus zum Finden des längsten Subarrays mit GCD größer als 1

In diesem speziellen Algorithmus können wir den größten gemeinsamen Wert des längsten Subarrays ermitteln, das größer als 1 enthält.

  • Schritt eins – loslegen.

  • Schritt 2 – Deklarieren Sie die Variablen des Prozesses.

  • Schritt 3 – Stellen Sie den Wert auf Null ein und initialisieren Sie ihn.

  • Schritt 4 – Erstellen Sie eine Funktion, um die maximale Länge dieses Subarrays auszuwerten.

  • Schritt 5 – Fügen Sie einen Vektor als Argument ein.

  • Schritt 6 – Erstellen Sie eine Variable, um die Antwort zu erhalten.

  • Schritt 7 – Stellen Sie den Wert auf Null ein und initialisieren Sie ihn.

  • Schritt 8 – Speichern Sie den Wert des längsten Subarrays mit einem GCD-Wert > 1.

  • Schritt 9 – Wiederholen Sie die Schleife, um den größten gemeinsamen Teiler jedes Unterarrays zu finden.

  • Schritt 10 – Ersetzen Sie die Antwort durch den Längenwert des Subarrays.

  • Schritt 11 – Wenn der größte gemeinsame Teiler der Subarrays größer als 1 ist, speichern Sie die Antwort.

  • Schritt 12 – Antwort zurückgeben.

  • Schritt 13 – Andernfalls führen Sie die Schleife erneut aus und wiederholen Sie den Vorgang.

  • Schritt 14 – Beenden Sie den Vorgang, nachdem der Vorgang abgeschlossen ist.

Syntax zum Finden des längsten Subarrays, dessen GCD größer als 1 ist

int n;
cin >> n;

const int MAX_NUM = 100 * 1000;
static int dp[MAX_NUM];

for(int i = 0; i < n; ++i){
   int x;
   cin >> x;

   int cur = 1;
   vector<int> d;
   for(int i = 2; i * i <= x; ++i){
      if(x % i == 0){
         cur = max(cur, dp[i] + 1);
         cur = max(cur, dp[x / i] + 1);
         d.push_back(i);
         d.push_back(x / i);
      }
   }
   if(x > 1){
      cur = max(cur, dp[x] + 1);
      d.push_back(x);
   }

    for(int j : d){
      dp[j] = cur;
   }
}
cout << *max_element(dp, dp + MAX_NUM) << endl;
Nach dem Login kopieren

Indem wir dem obigen Algorithmus folgen, haben wir hier die mögliche Syntax geschrieben, um den GCD-Wert mit dem längsten Subarray größer als 1 zu finden.

Methode:

  • Methode 1 − C++-Programm zum Finden des längsten Subarrays, dessen größter gemeinsamer Teiler größer als 1 ist, mithilfe der naiven Methode.

  • Methode 2 – C++-Programm zum Ermitteln des größten gemeinsamen Teilers eines Arrays größer als 1.

C++-Programm zum Finden von Unterarrays mit dem längsten gemeinsamen Teiler größer als 1 mithilfe der naiven Methode

In diesem C++-Code verfolgen wir einen naiven Ansatz, um den GCD-Wert des längsten Subarrays mit mehr als 1 zu ermitteln, indem wir alle möglichen Subarrays des gegebenen Arrays generieren.

Die chinesische Übersetzung von

Beispiel 1

lautet:

Beispiel 1

#include <bits/stdc++.h>
using namespace std;
void maxSubarrayLen(int arr[], int n) {
	int maxLen = 0;
	for (int i = 0; i < n; i++) {
		int gcd = 0;
		for (int j = i; j < n; j++) {
			gcd = __gcd(gcd, arr[j]);
			if (gcd > 1)
				maxLen = max(maxLen, j - i + 1);
			else
			   break;
		}
	}
	cout << maxLen;
}
int main() {
	int arr[] = { 410, 16, 7, 180, 222, 10, 33 };
	int N = sizeof(arr) / sizeof(int);
	maxSubarrayLen(arr, N);

	return 0;
}
Nach dem Login kopieren

Ausgabe

3
Nach dem Login kopieren

C++-Programm zum Ermitteln des größten gemeinsamen Teilers eines Arrays größer als 1

In diesem C++-Code versuchen wir, den größten gemeinsamen Teiler zu berechnen, und er bietet die Möglichkeit zu prüfen, ob er größer als 1 ist.

Beispiel 2

wird übersetzt als:

Beispiel 2

#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b){
   if (a == 0)
      return b;
   return gcd(b%a, a);
}
void bestArray(int arr[], int n){
   bool even[n] = {false};
   int ans = 0;
   for(int i = 0; i < n; i++){
      ans = gcd(ans, arr[i]);
      if(arr[i] % 2 == 0)
         even[i] = true;
   }
   if(ans > 1)
      cout << 0 << endl;
   else {
      ans = 0;
      for(int i = 0; i < n-1; i++){
         if(!even[i]){
            even[i] = true;
            even[i+1] = true;
            if(arr[i+1]%2 != 0){
               ans+=1;
            }
            else
               ans+=2;
         }
      }
      if(!even[n-1]){
         ans+=2;
      }
      cout << ans << endl;
   }
}
int main(){
   int arr[] = {16, 10, 07, 81, 88, 32, 3, 42, 25};
   int n = 9;
   bestArray(arr, n);

   int arr1[] = {16, 7};
   n = 2;
   bestArray(arr1, n);

   int arr2[] = {10, 97, 2001};
   n = 3;
   bestArray(arr2, n);
}
Nach dem Login kopieren

Ausgabe

5
2
1
Nach dem Login kopieren

Fazit

Durch diese Diskussion können wir herausfinden, wie wir das längste Subarray finden, dessen GCD größer als 1 ist. Hoffentlich zeigen Ihnen der Algorithmus und der geschriebene C++-Code deutlich, wie dieser Prozess in der realen Welt funktioniert.

Das obige ist der detaillierte Inhalt vonDas längste Subarray, dessen größter gemeinsamer Teiler größer als 1 ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Vor- und Nachteile der C++-Funktionsmakrodefinition? Was sind die Vor- und Nachteile der C++-Funktionsmakrodefinition? Apr 11, 2024 pm 04:54 PM

Obwohl die Definition von Funktionsmakros den Code vereinfachen und die Leistung verbessern kann, weist sie auch Nachteile auf: Typunsicherheit, Schwierigkeiten beim Debuggen, Namenskonflikte und Coderedundanz. Nach Abwägung der Vor- und Nachteile ist es wichtig, fundierte Entscheidungen bei der Verwendung von Funktionsmakros zu treffen.

Ausführliche Erklärung, wie man die Sprache C verwendet, um den größten gemeinsamen Teiler zu finden Ausführliche Erklärung, wie man die Sprache C verwendet, um den größten gemeinsamen Teiler zu finden Feb 18, 2024 pm 11:10 PM

Ausführliche Erläuterung der Methode zum Ermitteln des größten gemeinsamen Teilers in der Sprache C. Der größte gemeinsame Teiler (GCD, Greatest Common Divisor) ist ein in der Mathematik häufig verwendetes Konzept, das sich auf den größten Teiler unter mehreren ganzen Zahlen bezieht. In der Sprache C können wir viele Methoden verwenden, um den größten gemeinsamen Teiler zu finden. In diesem Artikel werden einige dieser gängigen Methoden detailliert beschrieben und spezifische Codebeispiele bereitgestellt. Methode 1: Die euklidische Division ist eine klassische Methode zum Ermitteln des größten gemeinsamen Teilers zweier Zahlen. Seine Grundidee besteht darin, die Teiler und Reste zweier Zahlen kontinuierlich zu dividieren

Detaillierte Erläuterung des C++-Funktionsaufrufmechanismus Detaillierte Erläuterung des C++-Funktionsaufrufmechanismus Apr 11, 2024 pm 02:12 PM

Der Funktionsaufrufmechanismus in C++ umfasst die Übergabe von Argumenten an eine Funktion und die Ausführung ihres Codes sowie die Rückgabe des Ergebnisses, sofern vorhanden. Es gibt zwei Möglichkeiten, Parameter zu übergeben: Übergabe als Wert (Änderungen werden innerhalb der Funktion vorgenommen) und Übergabe als Referenz (Änderungen werden im Aufrufer widergespiegelt). Bei der Wertübergabe wirken sich Wertänderungen innerhalb der Funktion nicht auf den ursprünglichen Wert aus (z. B. printValue), während Änderungen bei der Referenzübergabe den ursprünglichen Wert beeinflussen (z. B. printReference).

Ermitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben Ermitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben Aug 29, 2023 am 11:21 AM

Wir haben zwei Arrays von Ganzzahlen, eines mit den berechneten Elementen und das andere mit den Teilungspunkten, die zum Teilen des Arrays zur Generierung von Teilmengen erforderlich sind. Wir müssen die Summe jeder Teilmenge in jeder Teilung berechnen und die maximale Teilmenge zurückgeben. Gehen wir das Beispiel durch Verstehen: - Eingabe −intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1} Ausgabe−die maximale Subarray-Summe nach jeder Teilung [ 22, 13,9,9] Erläuterung − Hier zerlegen wir das Array nach seinen Teilungspunkten und erhalten die maximale Teilmenge nach jeder Teilung und nach der ersten Teilung → {9} und {4,5,6,7 }>>Die maximale Summe der Subarrays beträgt nach der zweiten Aufteilung -22→{9},{4

So finden Sie den größten gemeinsamen Teiler in der C-Sprache So finden Sie den größten gemeinsamen Teiler in der C-Sprache Sep 27, 2023 am 09:41 AM

Der größte gemeinsame Teiler kann mithilfe des euklidischen Algorithmus in der Sprache C ermittelt werden. Das Prinzip lautet: Der größte gemeinsame Teiler zweier ganzen Zahlen a und b ist gleich dem Rest von a dividiert durch b und dem größten gemeinsamen Teiler von c und b. Dieser Algorithmus ist sehr effizient und kann selbst bei großen Zahlen schnell lösen.

Eine Bestandsaufnahme der drei Länder, die das Bitcoin-Layer-1-Protokoll vernichten: BRC-20, Atomics, Runes Eine Bestandsaufnahme der drei Länder, die das Bitcoin-Layer-1-Protokoll vernichten: BRC-20, Atomics, Runes Apr 23, 2024 pm 02:01 PM

Ursprünglicher Autor: 0xSea.eth Bei einer Blockhöhe von 840.000 wird Bitcoin seine vierte Halbierung einläuten, wobei die Blockbelohnung von 6,25 BTC auf 3,125 BTC reduziert wird. Dies ist ein wichtiges Ereignis, auf das die gesamte Kryptowährungsbranche achtet. Innerhalb des Bitcoin-Ökosystems achtet fast jeder auf das Runes-Protokoll, das mit der Blockhöhe von 840.000 online gehen wird. Wie wird das Runes-Protokoll die Landschaft des Bitcoin-Layer-Protokoll-Ökosystems verändern? Welche Auswirkungen wird es auf BRC-20, Atomics und andere Protokolle haben? Als Beobachter und Spieler möchte ich am Vorabend der Halbierung und Einführung von Runes einige meiner jüngsten Gedanken zum Markt darlegen. Das einschichtige Token-Protokoll von Core Viewpoint 1/Bitcoin wird BRC-20, Atomi, bilden

Schreiben Sie mit C++ einen Code, um die Anzahl der Subarrays mit denselben Mindest- und Höchstwerten zu ermitteln Schreiben Sie mit C++ einen Code, um die Anzahl der Subarrays mit denselben Mindest- und Höchstwerten zu ermitteln Aug 25, 2023 pm 11:33 PM

In diesem Artikel werden wir C++ verwenden, um das Problem zu lösen, die Anzahl der Subarrays zu ermitteln, deren Maximal- und Minimalwert gleich sind. Das Folgende ist ein Beispiel für das Problem: −Input:array={2,3,6,6,2,4,4,4}Output:12Explanation:{2},{3},{6},{6}, {2 },{4},{4},{4},{6,6},{4,4},{4,4}und {4,4,4}sind die Teilarrays, die mit dem gleichen maximalen und minimalen Element gebildet werden können. Eingabe: array={3, 3, 1,5,

Verwenden der C-Sprachprogrammierung zur Lösung des größten gemeinsamen Teilers Verwenden der C-Sprachprogrammierung zur Lösung des größten gemeinsamen Teilers Feb 21, 2024 pm 07:30 PM

Titel: Verwenden Sie die C-Sprachprogrammierung, um die Lösung für den größten gemeinsamen Teiler zu implementieren. Der größte gemeinsame Teiler (kurz: Greatest Common Divisor, GCD) bezieht sich auf die größte positive ganze Zahl, die zwei oder mehr ganze Zahlen gleichzeitig teilen kann. Die Lösung nach dem größten gemeinsamen Teiler kann für einige Algorithmen und die Problemlösung sehr hilfreich sein. In diesem Artikel wird die Funktion zum Ermitteln des größten gemeinsamen Teilers durch C-Sprachprogrammierung implementiert und spezifische Codebeispiele bereitgestellt. In der Sprache C können Sie den Euklidischen Algorithmus verwenden, um das Maximum zu lösen

See all articles