![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 | |
Master
![]() |
![]() Hi!
Ich soll ein Programm nach diesen Aufgabenstellungen machen, komme aber nicht weiter: Zitat:
Code:
public class Bsp11 { public static void main(String[] args) { int[] kinder; int n,s,i,schritte=0; // n = children s = Steps boolean run = true; // get inputs System.out.println("Bitte Anzahl der Kinder eingeben >0: "); n = SavitchIn.readLineInt(); kinder = new int[n]; System.out.println("Bitte Schritte eingeben >0: "); s = SavitchIn.readLineInt(); for(i=0;i < n; i++) // kinder[] gets a value from 1..n { kinder[i] = i+1; //System.out.println(kinder[i]); } System.out.println(); //blank line //The real work } } |
|
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Probier's mal mit
Code:
int j=0; //j ist die Variable mit der das Array durchlaufen wird for(int i=0;i<n; i++){ //i dient dazu, daß das Array nur einmal durchlaufen wird j+=s; //Kurz für j=j+s; if(j>=n){j-=n;} //Damit j nicht über das Array hinausläuft System.out.println(kinder[j]); } Würde trotzdem empfehlen EPROG ordentlich zu machen, du wirst es brauchen... Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() Sowas ala
Code:
z=n-1 for(i=0;i < n; i++) { for (j=0; j<s; j++} { z=(z+1) Modulo n While kinder[z]=0 { z=(z+1) Modulo n } } Ausgabe(kinder[z]) kinder[z]=0 } k.A. wie die Syntax in Java aussieht. ![]() |
![]() |
![]() |
![]() |
#4 |
Quantensingularität
![]() |
![]() so sollte es gehen:
Code:
import java.util.ArrayList; /** * @author Tarjan * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class Kinderreim { public static void main(String[] args) { int n = Integer.valueOf(args[0]).intValue(); // Anzahl Kinder int s = Integer.valueOf(args[1]).intValue(); // Schrittgröße // Array befüllen und Kinder bennen ArrayList kinder = new ArrayList(n); for (int i=0, l=kinder.size(); i<n; i++) { kinder.add("Kind " + (i+1)); //+1 da Java mit 0 zu zählen beginnt, wir aber mit 1 ;) } // Auszählreim int i=s-1; // Zählindex beginned beim ersten Kind while (kinder.size() > 0) // solange es noch Kinder gibt { while (i >= kinder.size()) {i -= kinder.size();} // sollte Ende erreicht sein -> von vorne System.out.println(kinder.get(i)); // Kind ausdrucken kinder.remove(i); // Kind scheidet aus i+=s-1; // um Schrittgöße weiterzählen (minus eines wegen ausgeschiedenen Kind } } } Kind 3 Kind 6 Kind 9 Kind 4 Kind 8 Kind 5 Kind 2 Kind 7 Kind 1
____________________________________
Was ist klein, grün und dreieckig? Ein kleines grünes Dreieck! Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg! |
![]() |
![]() |
![]() |
#5 |
Master
![]() |
![]() Ich habs jetzt so gelöst
Code:
public class Bsp11 { public static void main(String[] args) { int[] kinder; int n=1,s,arraylaenge,hilf,j,k=1; // n = children s = Steps // get inputs System.out.println("Bitte Anzahl der Kinder eingeben >0: "); n += SavitchIn.readLineInt(); kinder = new int[n+1]; arraylaenge = n; System.out.println("Bitte Schritte eingeben >0: "); s = SavitchIn.readLineInt(); for (int i=1; i<=n; i++) { kinder[i] = i; } System.out.println(); //blank line //The real work for(int i=1;n > 1;i++) { //when all arrays are moved //System.out.println(n); //System.out.println(); System.out.println("next run"); j=1; do { //till the run var is as large as the var that is the end of the search area System.out.println("Ausgeschieden ist Kind: " + kinder[j]); hilf = kinder[j]; kinder[j] = kinder[arraylaenge-k]; kinder[arraylaenge - k] = hilf; //Checksets System.out.println("Durchlauf: " + j); System.out.println("n: " + n); System.out.println("j: "+ j); System.out.println(); //var increments n--; k++; j+=s; } while (j<n); } |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|