Heim > Backend-Entwicklung > C++ > Zählen Sie in der Sprache C die Anzahl der Einsen im Array nach N Bewegungen

Zählen Sie in der Sprache C die Anzahl der Einsen im Array nach N Bewegungen

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-09-11 16:25:02
nach vorne
1329 Leute haben es durchsucht

Zählen Sie in der Sprache C die Anzahl der Einsen im Array nach N Bewegungen

Gegeben ist ein Array der Größe N. Das Array besteht zunächst nur aus Nullen. Die Aufgabe besteht darin, zu zählen. Die Anzahl der Einsen im Array nach N Bewegungen. Jedem N-ten Schritt ist eine Regel zugeordnet. Die Regeln lauten:

  • Erster Zug – Element wechseln

  • an Position 1, 2, 3, 4…………
  • Zweiter Zug – Position 2, 4, 6, 8 ändern……… ….

  • Der dritte Zug – ändern Sie die Elemente an den Positionen 3 und 6, 9, 12……….

Zählen Sie die Anzahl der Einsen im letzten Array.

Wir verstehen durch Beispiele.

>

Eingabe

Arr[]={ 0,0,0,0 } N=4
Nach dem Login kopieren

Ausgabe

Number of 1s in the array after N moves − 2
Nach dem Login kopieren
Nach dem Login kopieren

Erläuterung - Array nach nachfolgender Bewegung -

Move 1: { 1,1,1,1 }
Move 2: { 1,0,1,0 }
Move 3: { 1,0,0,3 }
Move 4: { 1,0,0,1 }
Number of ones in the final array is 2.
Nach dem Login kopieren

Eingabe.

Arr[]={ 0,0,0,0,0,0} N=6
Nach dem Login kopieren

Ausgabe

Number of 1s in the array after N moves − 2
Nach dem Login kopieren
Nach dem Login kopieren

Erläuterung - Anordnung nach nachfolgenden Zügen -

Move 1: { 1,1,1,1,1,1,1 }
Move 2: { 1,0,1,0,1,0,1 }
Move 3: { 1,0,0,1,0,0,1 }
Move 4: { 1,0,0,0,1,0,0 }
Move 5: { 1,0,0,0,0,1,0 }
Move 4: { 1,0,0,0,0,0,1 }
Number of ones in the final array is 2.
Nach dem Login kopieren

Die im folgenden Programm verwendete Methode ist wie folgt:

  • Wir verwenden ein Ganzzahl-Array Arr[], initialisiert mit 0 und einer Ganzzahl N.

    < /li>
  • Die Funktion Onecount nimmt ein Arr[] und seine Größe N als Eingabe und gibt Nr. zurück. Die Zahl im letzten Array nach N Bewegungen.

  • Die for-Schleife beginnt bei 1 und geht bis zum Ende des Arrays.

  • Jedes i repräsentiert den i-ten Schritt.

  • Die verschachtelte for-Schleife beginnt beim 0. Index und geht bis zum Ende des Arrays.

  • Wenn für jeden i-ten Zug der Index j ein Vielfaches von i ist (j%i==0), ersetzen Sie 0 an dieser Position durch 1.

  • Setzen Sie diesen Vorgang für jedes i bis zum Ende des Arrays fort.

  • Hinweis – Die Indizierung beginnt bei i=1,j=1, die Array-Indizierung geht jedoch von 0 bis N-1. Daher wird arr[j1] jedes Mal konvertiert.

  • Durchqueren Sie abschließend noch einmal das gesamte Array und zählen Sie Nr. Es enthält 1 und wird in der Zählung gespeichert.

  • Gibt die Anzahl des gewünschten Ergebnisses zurück.

Beispiel

Live-Demo

#include <stdio.h>
int Onecount(int arr[], int N){
   for (int i = 1; i <= N; i++) {
      for (int j = i; j <= N; j++) {
         // If j is divisible by i
         if (j % i == 0) {
            if (arr[j - 1] == 0)
               arr[j - 1] = 1; // Convert 0 to 1
            else
               arr[j - 1] = 0; // Convert 1 to 0
         }
      }
   }
   int count = 0;
   for (int i = 0; i < N; i++)
      if (arr[i] == 1)
         count++; // count number of 1&#39;s
   return count;
}
int main(){
   int size = 6;
   int Arr[6] = { 0 };
   printf("Number of 1s in the array after N moves: %d", Onecount(Arr, size));
return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert:

Number of 1s in the array after N moves: 2
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonZählen Sie in der Sprache C die Anzahl der Einsen im Array nach N Bewegungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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