Zum Inhalt springen

Quersumme berechnen in Java


unimx

Empfohlene Beiträge

Also mal ganz faul aus google das erste ergebnis:


public class Quersumme {


	public static void main(String[] args) {

		int zahl = 155;


		System.out.println("Quersumme = " + quersumme(zahl));

	}


	public static int quersumme(int zahl) {

		if (zahl <= 9) return zahl;

		return zahl%10 + quersumme(zahl/10);

	}

}

rechnet dir die quersumme der zahl aus

quersumme von 155 in diesem fall = 11

mfg

Eth

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weis nicht ob es eine Methode gibt die dir aus einer Zahl die Quersumme bildet. Ich würde die Zahl in ihre einzelteile Zerlegen und dann einfach aufaddieren. Also die Zahl 123 in 1 2 3 zerlegen mit split dann in einen int Wert umwandeln und berechnen also 1+2+3 = 6.

Vielleicht kannst du ja auch mal deinen Ansatz posten damit wir uns dem mal anschauen können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke

wir haben es viel einfach bzw halt nur auf eine Zahl bezogen gemacht

--------------------------

public class Quersumme

{

public static void main(String argv[])

{

int z = 123;

int h,ze,e,qs ;

h = z/100; //1

z = z%100; //23

ze = z/10; //2

e = z%10; //3

qs = h + ze + e;

System.out.println(qs);

}

}

------------------

Die Lösung sieht aber gut aus.

Danke

gruß

Unimx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine weitere mögliche Lösung:


  public static int quersumme(int value) {

    int result                          = 0;

    for(char valueDigit : String.valueOf(value).toCharArray()) {

      result                           += Character.digit(valueDigit, 10);

    }

    return result;

  }

Wobei das natürlich nur ab Java 5 funktioniert und nicht gerade geeignet für Algorithmentheorie ist.

Das erste Beispiel ist schon OK, aber nicht in einer Schleife.

Um meiner Faulheit gerecht zu werden und didaktisch geschickt vorzugehen, hier nur ein Ansatz:

Prüfe ob die Zahl mehr als 1 Stelle hat

Mittels modulo eine Zahl "abspalten" und zur Gesamtsumme hinzufügen

Wiederhole bis nur noch 1 Stelle übrig

Tip: Modulo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wobei das natürlich nur ab Java 5 funktioniert
1.5/5.0 ist jetzt seit fast einem Jahr auf dem Markt, und ich setze es daher als vorhanden voraus. Es programmiert auch niemand mehr für die Windows 3.1 API *g*.

und nicht gerade geeignet für Algorithmentheorie ist.
Eine performante Lösung gehörte nicht zur Aufgabenstellung *g*.

Stand da oben nicht was von OHNE schleifenkonstrukt?
Das ist das Problem, wenn der OP sich nicht die Zeit für eine korrekte Rechtschreibung nimmt. Dann sind Eigeninterpretationen Tür und Tor geöffnet. Ich habe es als "inne" also als "in einer" Schleife gelesen.

Aber rekursiv geht's natürlich auch. Wiederrum basiert auf Character Operationen, aber damit kommt, wie ich finde, der Ablauf recht schön zum Ausdruck:

  public static int quersumme(int value) {

    if(value == 0) {

      return 0;

    } else {

      String valueString          = String.valueOf(value);

      int firstDigitValue         = Character.digit(valueString.charAt(0), 10);

      String restString           = valueString.length() > 1 ? valueString.substring(1) : null;

      if(restString == null) {

        return firstDigitValue;

      } else {

        return firstDigitValue + quersumme(Integer.parseInt(restString));

      }

    }

  }

Link zu diesem Kommentar
Auf anderen Seiten teilen

1.5/5.0 ist jetzt seit fast einem Jahr auf dem Markt, und ich setze es daher als vorhanden voraus. Es programmiert auch niemand mehr für die Windows 3.1 API *g*.

Das hab' ich mir schon gedacht. Ich wollte nur allgemein darauf hinweisen. Nicht das wieder kommt: 'Läuft bei mir nicht'.

Eine performante Lösung gehörte nicht zur Aufgabenstellung *g*.

*g* So meinte ich das ja auch nicht. Ich meinte eher so die Richtung 'pädagogisch wertvoll'. Jeder der ernsthaft programmieren will, sollte die grundlegenden Algorithmen mal gesehen haben ;)

Das ist das Problem, wenn der OP sich nicht die Zeit für eine korrekte Rechtschreibung nimmt. Dann sind Eigeninterpretationen Tür und Tor geöffnet. Ich habe es als "inne" also als "in einer" Schleife gelesen.

*allgemeine Verwirrung*

Das Zitat stammt nicht von mir.

Du weißt schon, daß Dein erster Code rekursiv war? Du dachtest OHNE und ich verstand IN EINER Schleife. Aber iss ja auch egal jetzt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...