Java :: Aufgabe #3 :: Lösung #15
22 Lösungen

#3
Quersumme berechnen und ausgeben
Anfänger - Java
von Gustl
- 12.08.2012 um 14:49 Uhr
Schreiben sie ein Konsolenprogramm, das eine
ihre Quersumme berechnet und das Ergebnis wie folgt ausgibt:
int
-zahl > 0 und < 10000 einliest, ihre Quersumme berechnet und das Ergebnis wie folgt ausgibt:
Konsolenausgabe:
Zahl eingeben (0-10000): 3698
Quersumme: 3 + 6 + 9 + 8 = 26
#15

von Exception (7090 Punkte)
- 16.02.2019 um 10:11 Uhr

package de.exception.quersumme_3; public class CrossSum { /** * Berechnet die Quersumme von arg. * * @param arg * @return Die Quersumme aus arg * @throws Exception */ public static int calculate(int arg) throws Exception { if(arg < 0 || arg > 1000) { throw new Exception("Parameter \"arg\" out of boundaries (0 - 1000), "+arg+" was given."); } int result = 0; for(char c : Integer.toString(arg).toCharArray()) { result += c - '0'; } return result; } /** * Berechnet die Quersumme von arg. * Gibt anschließend einen String mit der Berechnung und dem Ergebnis zurück. * * @param arg * @return Das Ergebnis und die Berechnung */ public static String calculate2(int arg) { if(arg < 0 || arg > 1000) { return "Parameter \"arg\" out of boundaries (0 - 1000), "+arg+" was given."; } int result = 0; String output = "Quersumme: "; for(char c : Integer.toString(arg).toCharArray()) { output += c + " + "; result += c - '0'; } output = output.substring(0, output.length() - 2); output += "= " + result; return output; } }

package de.exception.quersumme_3; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; class CrossSumTest { @Test void test_calculate() { try { assertEquals(1, CrossSum.calculate(10)); assertEquals(2, CrossSum.calculate(11)); assertEquals(13, CrossSum.calculate(58)); assertEquals(27, CrossSum.calculate(999)); assertThrows(Exception.class, ()->{CrossSum.calculate(-1);}); assertThrows(Exception.class, ()->{CrossSum.calculate(1001);}); } catch (Exception e) { System.out.println(e.getMessage()); } } @Test void test_calculate2 () { assertEquals("Quersumme: 1 + 0 = 1", CrossSum.calculate2(10)); assertEquals("Quersumme: 1 + 1 = 2", CrossSum.calculate2(11)); assertEquals("Quersumme: 5 + 8 = 13", CrossSum.calculate2(58)); assertEquals("Quersumme: 9 + 9 + 9 = 27", CrossSum.calculate2(999)); assertEquals("Parameter \"arg\" out of boundaries (0 - 1000), -1 was given.", CrossSum.calculate2(-1)); assertEquals("Parameter \"arg\" out of boundaries (0 - 1000), 1001 was given.", CrossSum.calculate2(1001)); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1