Schleifen und Array - Abzählreimaufgabe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schleifen und Array - Abzählreimaufgabe

    Hallo. Ich habe schon gesehen, dass man hier so einige Hilfe bekommt, wenn man mal ein Problem hat. Ich bin in Blue J nicht so bewandert und wollte fragen ob jemand Lösungsansätze für folgende Aufgabe hätte!?!

    Entwickeln Sie eine statische Methode zum Ermitteln des Siegers bei einem Abzählen. Die
    Methode bekommt die Informationen Kinderanzahl sowie die Anzahl der Silben des
    Abzählreims übergeben. Das Ergebnis ist eine Zahl, die sagt, welches Kind gewinnt (übrig
    bleibt). Das Abzählen beginnt immer mit dem ersten Kind.

    Der Aufruf der Methode abzaehlen(12,9) (12 Kinder und 9 Silben im Reim) müsste das
    Ergebnis 2 liefern.

    Hinweise:
    Man verwende ein Array in der Methode, in dem für jedes Kind gespeichert ist, ob es noch
    „drin“ ist, oder schon abgezählt wurde.

    Mit kleiner Reimanzahl (1 oder 2) lässt sich die Methode gut überprüfen.
    Bauen Sie ab- bzw. zuschaltbare Zwischenausgaben ein.
  • Hmmm also ich hab jetzt ne Lösung. Allerdings ist das Resultat wohl falsch. In der Aufgabenstellung soll ja bei 12 Kinder und 9 Reimen die Lösung 2 rauskommen. Bei mir kommt aber die Lösung 1 raus! Ich hab hier mal meinen Quelltext der Klasse Abzaehl

    Quellcode

    1. /**
    2. * Abzählreim
    3. *
    4. */
    5. public class abzaehlen {
    6. public static void main(String[] argv) {
    7. int i;
    8. java.util.Scanner input = new java.util.Scanner(System.in);
    9. System.out.print("Bitte geben Sie die Anzahl der Kinder ein: ");
    10. int kinder = input.nextInt();
    11. System.out.print("Bitte geben Sie die Anzahl der Silben ein: ");
    12. int silben = input.nextInt();
    13. Kind erster, letzter, index;
    14. erster = letzter = new Kind(0);
    15. for (i = 1; i < kinder; i++) {
    16. index = new Kind(i);
    17. letzter.next = index;
    18. letzter = index;
    19. }
    20. letzter.next = erster;
    21. index = letzter;
    22. while (index.next != index) {
    23. for (i = 1; i < silben; i++)
    24. index = index.next;
    25. System.out.print("Ausgeschieden: ");
    26. System.out.println(index.next.nr);
    27. index.next = index.next.next;
    28. }
    29. System.out.println("Es bleibt uebrig: " + index.nr);
    30. }
    31. }
    Alles anzeigen



    Hier noch die Klasse Kind

    Quellcode

    1. public class Kind {
    2. int nr;
    3. Kind next;
    4. // Datenfelder
    5. public Kind(int nr) {
    6. this.nr = nr;
    7. }
    8. }
    Alles anzeigen