Chinesische Ringe

Mithron

Mitglied
Moin,

ich versuche die Anzahl der Ringe als Konsoleneingabe einzubauen nur lässt sich der Wert nicht wirklich zum berechnen weitergeben.. bzw. steh ich da wohl grade auf der Leitung, wie ich die Eingabe da weiterziehen muss.
Java:
public class ChineseRings 
{
    public static void main(String [] args){
    
        System.out.println("Anzahl der Ringe?");
        int Ringe = new java.util.Scanner(System.in).nextInt();
        if (Ringe <= 0){
            
            System.err.println(Ringe+ " Ringe geht nicht!");
        } 
  
    } 


}
 

pro2

Bekanntes Mitglied
Am besten schreibst du dir dafür eine richtige Klasse mit entsprechenden Funktionen!

z.B.

Java:
public class ChineseRings 
{
    private int rings;

    public void readRings(){    
        System.out.println("Anzahl der Ringe?");
        rings = new java.util.Scanner(System.in).nextInt();
        if (rings <= 0){
            System.err.println(rings + " Ringe geht nicht!");  
    } 
   
   public int getRings(){
        return rings;
   }
}

Java:
public class Test{
{
    ChineseRings test;
    public static void main(String [] args){    
        test = new ChineseRings();
        test.readRings();
        System.out.println(test.getRings());
    }  
}
}

Wenn du gar nicht weißt, was ich damit meine, kannst du aber auch in deinem Beispiel einfach mit der Variable "Ringe" weiterarbeiten. Nur halt nur innerhalb der main. Du könntest sie auch außerhalb der main, in der Klasse, definieren.
 

Fab1

Top Contributor
habe es gerade getestet bei mir klappt alles :)

die Variablen würde ich klein schreiben, dies dient der Einheitlichkeit.

Ansonsten kannst du natürlich noch eine Ausgabe schreiben, für die Anzahl der Ringe die eingegeben wurde, ansonsten passiert ja nichts, wenn der User etwas eingibt.
 

Mithron

Mitglied
Es soll ja rekursiv berechnet werden, nur kriege ich den in Normalsprache verfassten Algorithmus nicht in eine Java-fähiges Programm umgewandelt.
 

Fab1

Top Contributor
Du kannst ja deinen in "normale Sprache" verfassten Algorithmus mal posten, dann könnte man zusammen klären was du nicht verstehst.
 

Mithron

Mitglied
Ich habe mir folgendes überlegt:

Damit ich alle Ringe mit einer endlichen Zahl 'n' von dem "Loop" runterkriege sollte das Programm prüfen, ob für alle n-Ringe gilt: "1" = Ring auf dem "Loop" oder "0" = kein ring auf dem "Loop"

Bsp.:

Wenn ich in der Konsole 4 eingebe, dass mir das Programm dann 4 "Ringe" mit dem Wert 1 kreiirt.

1 1 1 1 = "loop voll" nun sollen alle 1en durch 0en getauscht werden mit der Regel wenn n = 1 und n-1 = 1 und alles danach bis n-(n-1)=0 tausche n durch 0 usw. bis alle 0en weg sind.
 

Oben