Code für ein Summen Programm

Hallo,
ich möchte gerne ein Programm schreiben, das alle durch 17 teilbaren Zahlen im Bereich zwischen 100 und 999 addiert. Dazu möchte ich nur Addition und Substraktion verwenden.
Aber ich komme nicht weiter.
Ich bin noch ein Anfänger in der Programmierung und Java, also bitte ich um Verständnis, falls der Code völliger Mist ist. :)

Hier ist mein Anfang:

Java:
class Sum17 {
    public static void main(String[] args) {
        int a;
        int max = 999;
        int min = 102;
        int result = min;
       
        String result = "";
        String min = "";
  
        while (min < max) {     //damit ich alle Zahlen, die durch 17 teilbar sind, erhalte
            min = min + 17;
            result = result + min;
        }
       
        System.out.println(min + result);
    }
}
Vielen Dank im Voraus!
 
Zuletzt bearbeitet von einem Moderator:
Guten Abend erstmal.

Also es gibt jetzt für mich 3 Probleme:
1. Hast du schon mal versucht, das Programm zu kompilieren und zu testen?
2. Den Code kann man so zwar lesen, allerdings kann man ihn deutlich besser formatieren und darstellen lassen.
3. Was genau erwartest du an dieser Stelle von uns? Deine Fragestellung ist mir nicht wirklich klar.

Mit freundlichen Grüßen
Xelsarion
 
Der Code ist noch unfertig.
Ich möchte gerne wissen, wie ich den Code so umschreibe, damit der Bereich von 100 bis 999 eingehalten wird.
Nach der Ausführung des Programm kommen Zahlen von 221 bis 29835 raus.
 
Okay, dann fangen wir mal mit "offensichtlichen" Dingen an.

int a scheinst du nicht zu benutzen, solltest du also aus deinem Code entfernen. Gleiches gilt für die Strings min und result, welchen Zweck sollen die erfüllen?

Was heißt, es kommen Zahlen von 221 bis 29835 raus? Ich sehe nur ein Programm mit genau einer Ausgabe, also was wird dir vom Programm errechnet?

Mit freundlichen Grüßen
Xelsarion
 
Erst einmal danke, dass ihr mir helft. :)

Ich habe ihn noch einmal umgeändert:
Java:
class Sum17 {
  public static void main(String[] args) {
   int max = 999;
   int min = 102;
   int result = min;

  while (min < max) {       //damit ich alle Zahlen, die durch 17 teilbar sind, erhalte
        min = min + 17;
        result = result + min;

   System.out.println(min);   // nach jeder Addition wird die Zahl ausgegeben
    }
  System.out.println("=" result);   //Ergebnis, wenn man alle Zahlen zusammen zählt
  }
}
Bis jetzt funktioniet das Programm, aber meine höchste Zahl, die durch 17 teilbar ist, ist 1003 und die liegt aber über 999. Woran liegt das?
 
Zuletzt bearbeitet von einem Moderator:
Im lertzen Schleifendurchgang bevor min 999 erreicht steht ungefähr sowas da:

Code:
while( 986 < 999 )
{
    min = min + 17;
    System.out.println( min ); // <-- Gibt 1003 aus!
}
Der boolsche Ausdruck gibt true zurück weswegen die Schleife betreten wird und min nochmals um 17 erhöht wird. Somit kommst du auf die 1003.

Wenn du wirklich alle Zahlen rausfinden willst durch 17 teilbar sind, dann versuch es mal mit dem modulo Operator!
 
Überleg dir genau, was in dem Schritt vor den 1003 passiert. 986 ist die letzte Zahl, die du eigentlich haben willst, diese ist natürlich auch kleiner als dein max (999). Was passiert also bei deiner while-Schleife?

Mit freundlichen Grüßen
Xelsarion

EDIT: Naja, da hat dir jemand die Denkarbeit erspart.
@Zitrus: Der Tipp mit dem Modulo-Operator ist vermutlich zwar nett gemeint und in manchen Fällen vielleicht hilfreich, hier hilft der Operator allerdings auch nicht.
 
Mit modulo und einer Schleife müsste es eigentlich funktionieren, wenn ich gerade nicht komplett auf dem Schlauch stehe! ;)
 
Zuletzt bearbeitet:
Funktioniert doch exakt wie gewünscht.
Das bezweifelt ja keiner :) Allerdings hilft es dem TE vermutlich nicht wirklich weiter, da es sich bei dir um eine völlig andere Herangehensweise handelt und der TE nach eigener Aussage Anfänger ist und sich deshalb wohl erstmal mit den Grundlagen vertraut machen will.
Zudem ist diese Methode ineffezienter, als die Methode des TE, auch wenn das hier vermutlich keine große Rolle spielt.

Mit freundlichen Grüßen
Xelsarion
 
klar modulo funktioniert, aber du machst eine schleife die über ALLE zahlen im bereich 100 bis 1000 läuft und dort prüfst du halt immer mit modulo. Es ist in diesem Fall effizienter, wenn man immer nur 17 addiert. Da man somit keine 900 Zahlen prüft ob sie teilbar sind, sondern eben nur direkt die 52 Zahlen in dem Bereich verwendet, welche definitiv durch 17 teilbar sind.
Außerdem wollte TE halt nur mit Addition das ganze lösen^^
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben