Aus einer Zahlensequenz ermitteln, welche Zahl in gerader bzw. ungerader Anzahl vorkommt.

PingPing

Mitglied
Moin Moin zusammen,

ich bin blutiger Java-Anfänger und besuche grad in der Uni meine erste Informatik-Vorlesung. Wöchentlich haben wir einen Aufgabenzettel zu bearbeiten, um am Ende zur Klausur zugelassen zu werden. Anfangs lief es noch gut mit, aber langsam tue ich mich immer schwerer mit den Aufgaben. Diese Woche ganz besonders...

Folgende Aufgabe soll gelöst werden (zusammengefasst): Vom Benutzer soll eine Zahlensequenz eingegeben werden. Hierfür soll zunächst als int n die Menge der verschiedenen Zahlen, weche sich in der Sequenz befinden, eingeben werden. Danach als int Array, die Zahlensequenz beliebiger Länge.
Beispiel: n = 3, Sequenz = 1 1 2 2 2 3 3.

Nun soll ein boolean Array angelegt werden, der Größe n. In diesem Array soll mit true bzw. false gespeichert werden, ob die Zahlen in der Sequenz in gerader (true) oder ungerader (false) Anzahl auftreten. Für das angegebene Beispiel soll im Boolean Array also nach Abarbeitung stehen: true, false, true. Soviel zur Aufgabe.

Meine Idee war es, das Programm mithilfe verschachtelter for-Schleifen zu realisieren. Die erste for-Schleife sollte die Durchläufe (also n) festlegen. Die zweite Schleife die jeweilige Zahl aus der Sequenz ermitteln (also beim ersten Durchlauf die erste Zahl der Sequenz und bei jedem weiteren Durchlauf die nächste Zahl aus der Sequenz, welche von der vorherigen verschieden ist). In der dritten Schleife wollte ich überprüfen, wie oft meine Zahl in der Sequenz vorkommt und dies in eine weitere int-Variable (counter) schreiben. Am Ende dann mit Modulo 2 überprüfen, ob gerade oder ungerade und dies auf das Boolean Array anwenden.

Leider habe ich meinen Code inzwischen wieder frustbedingt gelöscht. Falls er jedoch für das Verständnis notwendig ist, schreibe ich meinen genannten Ansatz nochmal und poste den Code.

Falls jemand schon so versteht, wie ich versucht habe, das Ganze umzusetzen: Ist meine Idee auch nur ansatzweise richtig?

Btw: Wir dürfen keine weiteren Arrays erstellen und auch keine Sortier- oder sonstigen Funktionen. Alles soll nur mithilfe des boolean-Array bzw. entsprechenden Schleifen realisiert werden.
 

JavaMeister

Gesperrter Benutzer
Oder lässt sich auch mit einer for-Schleife lösen.

Während du das zweite Boolen Array befüllt zählst du die ANzahl "0".

Und dann kann man ermitteln wieviele gerade und wieviele ungerade Zahlen da sin.d
 

PingPing

Mitglied
Aber wie schaffe ich es, dass in jedem Durchlauf immer die nächste verschiedene Zahl gezählt wird?

Beispielsweise n = 3; Sequenz = 1 1 5 5 1 6. Im ersten von drei Durchläufen (da n = 3) zähle ich wie oft die Zahl 1 vorkommt (also die erste Zahl meiner Sequenz). Im zweiten Durchlauf muss ich dann die 5 zählen, da dies die erste Zahl ist, welche von der 1 verschieden ist. Aber wie formuliere ich diese Bedingung in einer for-Schleife? Oder einer while-Schleife? Ich stehe echt auf dem Schlauch... Wie soll das Ganze mit nur einer for-Schleife funktionieren?
 
Zuletzt bearbeitet von einem Moderator:

PingPing

Mitglied
Schade, dass man hier nur in einem bestimmten Zeitfenster editieren kann... Jetzt muss anstatt Durchlauf wohl Durchfall stehen bleiben... Sorry dafür! ;)
 
Zuletzt bearbeitet:

Neue Themen


Oben