[Java] Bestimmte Zahlen ausgeben

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von White_Angel, 24. Februar 2011 .

  1. 24. Februar 2011
    Bestimmte Zahlen ausgeben

    Ich habe folgende Aufgabe und zwar soll ich eine 9 stellige zahl ausgeben
    die die zahlen von 1-9 besitzen (ohne 0).
    das knifflige dabei ist dass nur eine zahl nur einmal vorkommen darf.

    Und das die erste stelle n durch die n anzahl teilbar sein muss (ohne rest)

    also z.b. die zahlen 123456789
    1 / 1 = 1 ist teilbar
    2 / 1 = 2
    ..
    2 / 2 = 1
    3 / 2 = 1,5 <- fail darf nicht verwendet werden die "3" an der 2ten stelle

    ich habe erstmal ein array angelegt mit 9 und schon eine for schleife versucht etc.
    aber ich kriegs einfach net hin :/ könnte mir jmd nen guten ansatz liefern, es ist echt wichtig
     
  2. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Dann poste doch mal deinen Ansatz, dann kann man gucken woran das hängt.
    Vorher sieht das eher nach "Macht mir meine Hausaufgaben" aus.
     
  3. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    das ist doch das problem mit dem ansatz ich weiß nicht wie ich richtig ansetzen soll womit ich anfangen soll, hab paar möglichkeiten durchdacht und versucht, aber die werden nicht zum tatsächlichen ergebnis führen
     
  4. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Ja, poste doch einfach mal den code. Dann kann man sagen wo der denkfehler ist usw.
     
  5. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Kurze erklärung, er so speichert er erstmal
    die anzahl in die verschiedenen arrays von den stellen,
    aber sieht iwie schwachsinnig aus, weil er die werte ja noch iwie in die arrays speichern muss -.-

    Code:
    public class zahlen
    {
    
    
    public static void main(String[] args)
    
    {
    
    
    
    int[] stelle = new int[9];
    int s1 = 0;
    
    
    
    System.out.println("Zahlen von 1 bis 9");
    
    /* 1. Stelle */
     for (int n = 1; n < 10; n++)
     {
     stelle[0] = 1;
     
     if ( n % stelle[0] == 0)
     {
     
     s1++;
    
     }
     }
     
     int[] st1 = new int[s1-1]
    
     /* 2. Stelle */
     
     for (int n = 1; n < 10; n++)
     {
     stelle[1] = 2;
    
     if ( n % stelle[1] == 0)
     {
    
     s2++;
    
     }
     }
     
     int[] st2 = new int[s2-1]
     
     /* 3. Stelle */
    
    
    }
    
    }
     
  6. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Wobei hast du jetzt Probleme?

    Das Ding is eigentlich ganz simple.

    Als erstes legst du ein Array mit 9 Stellen an. Dann füllst du das Array mit Zufallszahlen. (int zahl = (int)((Math.random()) * 9 + 1); ) Diese musst du dann an die nte Stelle des Arrays setzen, n ist Anfangs 0. n wird danach hochgezählt und beim nächsten Durchlauf kontrollierst du die nächste Zufallszahl mit allen anderen aus n. Wenn diese zufälligerweise schon vorhanden sein sollte, dann gibst du ihm nochmal Math.random. Solange, bis du eine Zahl einfügen kannst, die du noch nicht gehabt hast.

    Sobald du den Arrays hast, gibst du die Zahl aus, gehst die Rechnerei einmal durch, so wie du das auf dem Zettel gemacht hast und dann kannst du die Zahl als "richtig" ausgeben, wenn da nie ein Rest bleibt. Ansonsten legst du einfach einen neuen Array an und beginnst den Spaß von Anfang an.
     
  7. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    So gleich als hint: Um zu überprüfen, ob was schon drin ist, haben arrays die .contains funktion.
     
  8. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Du kannst auch nen Array machen mit 1-9 jeweils und dann Collections.shuffle(array) nutzen um das durchzumischen. dann hättest du zumindest schonmal ne zufallszahl mit unterschiedlichen ziffern an jeder stelle
     
  9. 24. Februar 2011
    AW: Bestimmte Zahlen ausgeben

    Code:
    /******************************************************
     * 
     * ich weiß, ich weiß.
     * Hausübungen helfen und so, nicht gerne gesehen.
     * Was soll ich sagen, ich bin nett ;)
     * 
     *****************************************************/
    
    import java.util.Collections;
    import java.util.ArrayList;
    
    public class test {
     public static void main(String[] args){
    
     //Array Liste anlegen
     ArrayList array = new ArrayList();
    
     //Mit Hilfe einer for Schleife das Ding mit Werten von 0 bis 8 +1 je Wert füllen. (Also effektiv 1 - 9)
     for(int i = 0; i <= 8; i++){
     array.add(i+1);
     }
    
     //Testweise ausgeben. Nur zur Überprüfung
     System.out.println(array);
     
     //Mischen, danke xPliCt. Hab das allerdings nur für eine ArrayListe gefunden?
     Collections.shuffle(array);
    
     //Testweise ausgeben. Nur zur Überprüfung
     System.out.println(array);
     
     }
    }
    
    Btw. schadest du nur dir selbst damit, wenn du das nicht machst. Das sind Basics.

    E:// Für den zweiten Teil benötigst du simplerweise nur eine verschachtelte For - Schleife. Oder anders gesagt eine For und in einer For.

    Oder, wenn du dir das grafisch vorstellen willst: eine 2 - dimensionale n * n Matrix (in dem Falle 9 x 9)
     
  10. 3. März 2011
    AW: Bestimmte Zahlen ausgeben

    Das ist mitunter nen Grund warum ich mir die Mühe selten mache.
     
  11. 4. März 2011
    AW: Bestimmte Zahlen ausgeben

    Bei der lockeren aufgabenstellung hätte er doch einfach eine Zahl ausgeben können die die Aufgabenstellung erfüllt.
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.