Summe aller Vielfachen von 3 oder 5 unter 1000.

Dieses Thema Summe aller Vielfachen von 3 oder 5 unter 1000. im Forum "Allgemeine Java-Themen" wurde erstellt von hos15, 3. Jan. 2017.

Thema: Summe aller Vielfachen von 3 oder 5 unter 1000. Hallo Liebe Java Freunde , Ich muss ein Mini-Projekt für das Modul "Programmieren " Programmieren. Ich habe mir...

  1. Hallo Liebe Java Freunde ,

    Ich muss ein Mini-Projekt für das Modul "Programmieren " Programmieren. Ich habe mir dieses Problem ausgesucht: "Finden Sie die Summe aller Vielfachen von 3 oder 5 unter 1000."
    Das Problem ist ich darf diese Aufgabe nicht einfach so lösen wie es mir passt sondern muss das Anwenden was im Modul Programmieren beigebracht wurde.
    Eines der Themen war LinkedList (Stacks etc.). Ich habe versucht diese Aufgabe mit LinkedList zu lösen. Meine Idee:

    Mein Code soll eine Liste enthalten da sollen alle zahlen von 1-1000 sein. Es soll überprüft werden wenn eine zahl kein vielfache von der zahl 3 oder 5 ist soll soll diese aus der Liste entfernt werden. Am Ende sollen die zahlen die übrig geblieben sind aus meiner Liste addiert werden.


    Mein Code:
    Code (Java):
    import java.util.LinkedList;

    public class Vielfachevon3und5 {

        int N = 1000;

        public static void main(String[] args) {
            Vielfachevon3und5 b1 = new Vielfachevon3und5();

            b1.prüfen();
        }

        public void prüfen() {
            LinkedList list = new LinkedList();
            for (int i = 1; i < 1000; i++) {
                list.add((i));
                if(i % 3 != 0 || i % 5 != 0){
                    list.remove(i);
                }
               

            }

            System.out.println(list);
        }

    }
     
    Meine Liste mit den Zahlen 1-1000 wird erstellt jedoch werden die zahlen die keine Vielfache von 3 und 5 sind nicht entfernt. Als fehlermeldung bekomme ich :

    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.LinkedList.checkElementIndex(Unknown Source)
    at java.util.LinkedList.remove(Unknown Source)
    at ProjektEuler.Vielfachevon3und5.prüfen(Vielfachevon3und5.java:20)
    at ProjektEuler.Vielfachevon3und5.main(Vielfachevon3und5.java:12)
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Ich verstehe nicht, wieso du erst alle hinzufügst und dann die falschen wieder raus nimmst?
    Prüfe doch vor dem hinzufügen zur Liste, ob es ein Vielfaches ist, wenn ja, dann hinzufügen :D

    PS: wenn du die Methode static machts, brauchst du kein Objekt der Klasse zu erstellen :p
     
  4. OMG :O Wie Dumm ich bin :O
    Das habe ich gemacht un das klappt Danke !
    Aber wieso kann ich keine elemente entfernen ?
    und nun wie addiere ich am besten die Zahlen in der Liste ? gibt es dafür eine extra Methode ?
     
  5. Wenn du den Typ von der List bei Object belassen willst, dann kannst du es so machen:
    Code (Java):

    int sum = 0;
    for (Object i: list){
        sum += (int) i;
    }
    System.out.println(sum);
     
     
  6. Ok viele Dank :)

    Kennst du vllt ein Problem aus Projekt Euler wo vererbung angebracht wäre ?
     
  7. Ich habe die mal bis 10 gemacht und dann aus Zeitmangel, vielleicht auch ein Umschwung meiner Interesse, auf etwas anderes :D, nicht mehr weiter. Bis dort brauchte ich keine Vererbung, soviel kann ich sagen :p
     
  8. stg
    stg
    Hier fügst du einen Integer mit dem WERT i hinzu.
    aber hier entfernst du den Eintrag in der Liste an der STELLE i

    Schon beim ersten Schleifendurchlauf "knallt es" deswegen. Du fügst eine 1 hinzu, diese 1 steht dann an Position 0. Anschließend willst du das Element an Stelle 1 entfernen, aber da steht noch gar nichts in der Liste!
     
    VfL_Freak gefällt das.
  9. Danke ! :)
     
  10. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!