Problem bei Berechnung

Diskutiere Problem bei Berechnung im Java/Mono/dotGNU Forum im Bereich Programmieren unter Linux/Unix; hi, ich bin gerade dabei mir etwas java beizubringen und habe mir folgende aufgabe gestellt: Wenn man alle natürlichen zahlen unter 10...

  1. #1 Nemesis, 13.10.2008
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    hi,
    ich bin gerade dabei mir etwas java beizubringen und habe mir folgende aufgabe gestellt:

    Wenn man alle natürlichen zahlen unter 10 auflistet, die ein vielfachen von 3 und 5 sind, so erhält man 3,5,6 und 9. Deren Summe beträgt 23.

    Was ist die Summe aller vielfachen von 3 und 5 unter 1000 ?

    mein Ansatz war:

    Code:
    public class prob1
    {
            public static void main(String[] args)
            {
                    System.out.println("");
                    int j = drei();
                    int i = fünf();
                    int k = j + i;
                    System.out.println("-----------------------------------");
                    System.out.println("Gesammtsumme der Vielfachen: " + k);
                    System.out.println("");
            }
    
    
            public static int drei()
            {
                    int a = 999;            //konstante für maximale zahl
    
                    int i = 0;              //anzahl an vielfachen von 3
                    int j = 0;              //durchzählen der vielfachen von 3
    
                    i = a / 3 + 1;
    
                    int array1[] = new int[i];
    
                    for (j=0; j<i; j++)
                    {
                            array1[j] = j * 3;
                            //System.out.println(array1[j]);
                    }
    
                    int k = 0;              //zusammenzählen der zahlen
    
                    for (j=0; j<i; j++)
                    {
                            k = k + array1[j];
                    }
    
                    System.out.println("Summe der Vielfachen von 3: " + k);
                    return k;
            }
    
            public static int fünf()
            {
                    int a = 999;          //konstante für maximale zahl
    
                    int i = 0;              //anzahl an vielfachen von 3
                    int j = 0;              //durchzählen der vielfachen von 3
    
                    i = a / 5 + 1;
    
                    int array1[] = new int[i];
    
                    for (j=0; j<i; j++)
                    {
                            array1[j] = j * 5;
                            //System.out.println(array1[j]);
                    }
    
                    int k = 0;              //zusammenzählen der zahlen
    
                    for (j=0; j<i; j++)
                    {
                            k = k + array1[j];
                    }
    
                    System.out.println("Summe der Vielfachen von 5: " + k);
                    return k;
            }
    }
    Das ergenis für alle Zahlen unter 10 passt, aber das für alle unter 1000 nicht und ich finde den fehler nicht.

    macht man das überhaupt so, oder gibts da nen einfacheren weg ?

    thx!
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Du koenntest auch den Rest-Operator '%' benutzen und die Summe in einer einzigen Schleife berechnen;
    Code:
    int summe = 0;
    for (i = 0; i < 1000; ++i){
      if (i%3 == 0 || i%5 == 0) {
        summe += i; // ist dasselbe wie summe = summe + i
       // wenn Du i ausdrucken willst, tue das hier, oder speichere i in einem
       // array
     }
    }
    return summe;
    
    'tschuldige, wenn ich keinen vollstaendigen Code schreibe, ich kann Java nicht wirklich.
     
  4. #3 Nemesis, 13.10.2008
    Zuletzt bearbeitet: 13.10.2008
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    hm, das kapier ich nicht ganz ...

    die for-schleife ist klar, fang bei 0 an und mach solang bis die bei 1000 bist in 1er schritten.
    aber dann die if schleife ... wenn i/3 oder i/5 null ergibt, dann soll er zur summe eins addieren ?

    da komme ich nicht ganz mit.

    mfg

    update:

    ich hab den code etwas vereinfacht:

    Code:
    public class prob1
    {
            public static void main(String[] args)
            {
                    System.out.println("");
                    int j = drei();
                    int i = fünf();
                    int k = j + i;
                    System.out.println("-----------------------------------");
                    System.out.println("Gesammtsumme der Vielfachen: " + k);
                    System.out.println("");
            }
    
    
            public static int drei()
            {
                    int a = 999;            //konstante für maximale zahl
    
                    int i = 0;              //anzahl an vielfachen von 3
                    int j = 0;              //durchzählen der vielfachen von 3
                    int k = 0;
    
                    i = a / 3 + 1;
    
                    for (j=0; j<i; j++)
                    {
                            k = k + (j * 3);
    
                    }
    
                    System.out.println("Summe der Vielfachen von 3: " + k);
                    return k;
            }
    
            public static int fünf()
            {
                    int a = 999;          //konstante für maximale zahl
    
                    int i = 0;              //anzahl an vielfachen von 3
                    int j = 0;              //durchzählen der vielfachen von 3
                    int k = 0;
    
                    i = a / 5 + 1;
    
                    for (j=0; j<i; j++)
                    {
                            k = k + (j * 5);
                    }
    
                    System.out.println("Summe der Vielfachen von 5: " + k);
                    return k;
           }
    }
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Da hsat Du nicht ganz ordentlich gelesen: Wenn "i%3" gleich 0 ergibt, so ist i durch 3 teilbar, also ein Vielfaches von drei. Analog fuer "i%5". In dem Falle soll zur Summe i (nicht 1!!) addiert werden. Ich dachte, dies sei die Summe, die Du berechnen wolltest. Tut mir leid, falls ich mich geirrt und Dich falsch verstanden habe.
     
  6. #5 Nemesis, 13.10.2008
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    jetzt hab ich dich verstanden :-)

    Code:
    public class prob
    {
            public static void main(String[] args)
            {
                    int summe = 0;
    
                    System.out.println("");
    
                    for (int i = 0; i < 1000; i++)
                    {
                            if (i%3 == 0 || i%5 == 0)
                            {
                                    summe += i;
                            }
                    }
    
                    System.out.println("Gesammtsumme der Vielfachen: " + summe);
                    System.out.println("");
            }
    }
    ich kannte das mit dem % nicht und dachte du hast dir gedacht dass es vlt. so funktionieren könnte, da du ja sagtest du kannst nicht wirklich java ;)

    thx!
     
Thema:

Problem bei Berechnung

Die Seite wird geladen...

Problem bei Berechnung - Ähnliche Themen

  1. Linux 5.6 löst Jahr-2038-Problem für 32-Bit-Systeme

    Linux 5.6 löst Jahr-2038-Problem für 32-Bit-Systeme: Die kommende Version 5.6 wird der erste Linux-Kernel sein, der gegen das Jahr-2038-Problem auf 32-Bit-Systemen immun ist. Damit das greifen kann,...
  2. kleines curl Problem

    kleines curl Problem: Hallo, ich bin LINUX Frischling und hab mich ein wenig in eien Sackgasse verlaufen... Ich habe vor, die Verzeichnisgröße via curl Befehl in eine...
  3. Samba 4.0.0 - DNS-Problem

    Samba 4.0.0 - DNS-Problem: Hallo, ich betreibe seit 2013 einen Samba4 Server auf Basis der sernet-Pakete als DC für eine kleine Domäne. Nur mit dem DNS gibt es Probleme....
  4. Mageia 7.1 patcht Boot-Problem bei AMD Ryzen 3000 CPUs

    Mageia 7.1 patcht Boot-Problem bei AMD Ryzen 3000 CPUs: Mageia hat kurzfristig mit Version 7.1 ein Point-Release veröffentlicht, um einen Boot-Fehler mit AMDs Ryzen 3000 CPUs zu beheben, der einige...
  5. ip6tables Problem

    ip6tables Problem: Hallo zusammen, ich hab ein Problem kann aber keinen Fehler finden, äußert sich wie folgt, ich habe endlich für ein System in Netz eine IPv6...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden