Heim > Artikel > Backend-Entwicklung > 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
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
Ausgabe
Number of 1s in the array after N moves − 2
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.
Eingabe.
Arr[]={ 0,0,0,0,0,0} N=6
Ausgabe
Number of 1s in the array after N moves − 2
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.
Wir verwenden ein Ganzzahl-Array Arr[], initialisiert mit 0 und einer Ganzzahl N.
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.
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'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; }
Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert:
Number of 1s in the array after N moves: 2
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!