Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Moin Moin,
Ich möchte ein Programm schreiben das wie folt funktionieren soll:
Zuerst wird über die kommandozeile/Benutzereingabe eine Zahl N eingegeben.
Im Anschluss wird von 1 ausgehend jede zweite zahl (bis zu N) weggestrichen.
Von den übriggebliebenen wird nun jede 3. weggestrichen.
Von den immer noch übriggebliebenen wird nun jede 4. weggestrichen.
Die zu guter letzt noch übrig gebliebenen Zahlen werden ausgegeben.
Ich hoffe das war einigermaßen verständlich formuliert.
Leider ist meine Ausgabe (nach den schritten): 1,5,9,13 bei N=20 was leider falsch ist..
Java:
import java.util.Arrays;
import java.util.Random;
import java.util.function.Predicate;
public class OrmittedNumbers {
public static void main(String[] args) {
System.out.print("Eingabe: ");
int N;
N = StdIn.readInt();
int[] feld;
feld = new int[N];
for (int i = 0; i < N; i += 2) {
feld[i] = i + 1;
rückgabe(feld);
}
for (int w = 0; w < N; w++) {
feld[w] = w + 1;
if (w % 3 == 0) {
rückgabe(feld);
}
}
for (int x = 0; x < N; x++) {
feld[x] = x + 1;
if (x % 4 == 0) {
System.out.println(feld[x]);
rückgabe(feld);
}
}
}
public static int[] rückgabe(int[] feld) {
return feld;
}
}
Du weist ein int einem Array zu.
Mit i += 2 in der ersten Schleife überspringst du jedes mal ein Feld.
Die Methode rückgabe macht so erstmal kein Sinn. Zumindest so, wie du sie verwendest.
Und warum machst du folgendes in den unteren beiden Schleifen: feld[w] = w + 1;
feld[x] = x + 1;
Wie hast du dir das wegstreichen vorgestellt? Eine -1 für jede zu ersetzene Zahl oder soll das Array immer verkleinert werden?
Ich überspringe jedes mal ein Feld, da dies der erste "Durchlauf" sein soll, bei dem jede zweite zahl weggestrichen werden soll.
Im endeffekt soll es so aussehen , dass zuerst jede zweite zahl weggestrichen wird.
Von den übrig gebliebenen soll dann jede 3. Weggestrichen werden.
Und von dem Rest dann jede 4.
Also praktisch halbieren, die hälfte dann dritteln und den rest dann vierteln..
Ist ein bisschen umständlich erklärt, weiß nicht ob ich das so rüberbringen kann was ich meine :/