Java Programm schreiben das Quersummen einer Zahl berechnet wie??

5 Antworten

Die Zahl als String hat einen großen Vorteil: Man kann von fast beliebig grossen Zahen die Quersumme bilden.

Du musst halt die einzelnen Stellen ausrechnen.

Einserstelle = Zahl % 10

Zehnerstelle = Zahl / 10 und dann neue Zahl % 10

Hunderterstelle = Zahl / 100 >> 0 (Binärshift) löscht die Kommazahlen

Bsp. 145 / 100 = 1,45 <<0 = 1

Ob >> 0 oder << 0 ist hierbei egal so lang es Java unterstützt.

Woher ich das weiß:Hobby

Unsaubere Variante: Zahl -> String, aufsplitten, einzelne Stellen -> Zahl konvertieren, aufsummieren.

Ordentliche Variante: überleg dir mal wie man zB die 12 in 1 und 2 aufteilt.

Ein Tipp: Führe einmal diese Ganzzahldivision durch.

12 % 10

Echt jetzt? Gestern wollte das ein anderer Fragant für C++ wissen.

Dann hier nochmal für Java – kann ich auch nicht, ist aber dasselbe 😜

int Quersumme(int Zahl) {
  int q=0;
  Zahl=abs(Zahl);
  while(Zahl != 0) {
    q+=Zahl%10;
    Zahl/=10;
  }
  return q;
}
PWolff  31.10.2018, 21:11

Ganz dasselbe ist es ganz streng genommen nicht - in C++ wäre auch

while(Zahl)

möglich.

(Und es gibt Programmiersprachen, die einen eigenen Operator für Ganzzahldivision haben - bei / wandeln sie Zähler und Nenner vorher in Fließkommazahlen um.)

MarkusGenervt  31.10.2018, 21:29
@PWolff

Ja, stimmt ja mit "while"!

Aber die implizite Typ-Umwandlung kenne ich eigentlich nur von Skriptsprachen und VB. Hier gibt es dann aber besondere Operatoren wie beispielsweise "\", die ein Integer-Ergebnis erzwingen.

PWolff  31.10.2018, 22:01
@MarkusGenervt

Dann gibt's noch Formelmanipulatoren - die machen aus Ganzzahl / Ganzzahl eine rationale Zahl.