forked from IF-LK-2020/oop2
72 lines
2.0 KiB
Java
72 lines
2.0 KiB
Java
/**
|
|
* Ein einfacher Rechner.
|
|
*/
|
|
public class Calculator {
|
|
|
|
/**
|
|
* Bildet die Summe aller gerader Zahlen die kleiner oder gleich
|
|
* <var>pUpperBound</var> sind. Die Eingabe <code>addEvenNumbers(4)</code>
|
|
* ergibt also <code>2 + 4 = 6</code>.
|
|
*
|
|
* TODO: Benutze den Debugger, um die beiden Fehler in der Methode zu finden.
|
|
*
|
|
* @param pUpperBound Obere Grenze der Summe
|
|
* @return
|
|
*/
|
|
public int addEvenNumbers( int pUpperBound ) {
|
|
int sum = 0, i = 1;
|
|
while( i < pUpperBound ) {
|
|
// Nur gerade Zahlen addieren
|
|
if( i%2 == 0 ) {
|
|
sum += i;
|
|
i++;
|
|
}
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
/**
|
|
* Wendet den euklidischen Algorithmus zur Suche des größten gemeinsamen
|
|
* Teilers bei zwei positiven ganzen Zahlen an.
|
|
*
|
|
* TODO: Benutze den Debugger, um den Fehler in der Methode zu finden.
|
|
*
|
|
* @link https://de.wikipedia.org/wiki/Euklidischer_Algorithmus
|
|
* @param pNumberA
|
|
* @param pNumberB
|
|
* @return
|
|
*/
|
|
public int ggT( int pNumberA, int pNumberB ) {
|
|
if( pNumberA < 0 || pNumberB < 0 ) {
|
|
return 0;
|
|
} else if( pNumberA == 0 ) {
|
|
return pNumberB;
|
|
} else {
|
|
while( pNumberB > 0 ) {
|
|
if( pNumberA < pNumberB ) {
|
|
pNumberA -= pNumberB;
|
|
} else {
|
|
pNumberB -= pNumberA;
|
|
}
|
|
}
|
|
return pNumberA;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Berechnet das kleinste gemeinsame Vielfache zweier positiver Ganzzahlen.
|
|
* @link https://de.wikipedia.org/wiki/Kleinstes_gemeinsames_Vielfaches#Berechnung_über_den_größten_gemeinsamen_Teiler_(ggT)
|
|
* @param pNumberA
|
|
* @param pNumberB
|
|
* @return
|
|
*/
|
|
public int kgV( int pNumberA, int pNumberB ) {
|
|
return 0;
|
|
|
|
// TODO:
|
|
// Implementiere die Methode wie unter dem Link oben beschreiben,
|
|
// indem du das kgV mit Hilfe des ggT berechnest.
|
|
}
|
|
|
|
}
|