empty88 Geschrieben 1. November 2009 Geschrieben 1. November 2009 Hi, habe hier eine Aufgabe wo ich nicht weiter komme. Entwerfen Sie Berechnungsstrategien zu den zwei Methoden div(int x, int y) (diese soll das ganzzahlige Ergebnis einer Integer‐Division ausgeben) und mod(int x, int y) (diese soll den ganzzahligen Rest einer Integer‐Division ausgeben) und setzen Sie diese mittels eines Java‐ Programms um. Dabei dürfen Sie die Operationen /, * und % nicht verwenden. Geben Sie in einer entsprechenden Main‐Methode Beispielaufrufe Ihrer implementierten Methoden an, welche unter anderem negative Parametereingaben berücksichtigen. Hier mal meine Ansätze: public class div2 { static int div(int a, int b, int y) { // a = Rest, b= Divisor und y = Quotient; while (a > ; // solange Rest > als Divisor, führe die Schleife aus. if ( a > // wenn Rest größer als Divisor, wobei bei Division max a+1, a-1 entstehen kann, so kann b nicht größer als a werden. {a = a-b; // Rest= Rest - Divisor, solange bis Rest aufgebraucht y = y+1;} // Ergebnis wird ausgeliefert mit y = 0 als Quotient. Er addiert sich bei jeder Ausführung. return y;} // Gebe y aus. public static void main (String ... args) { System.out.println (div(30,3,0)); } } Dies funktioniert aber nicht, könnt ihr mir vielleicht weiter helfen? Danke schonmal und Gruß Zitieren
flashpixx Geschrieben 1. November 2009 Geschrieben 1. November 2009 Mache es Dir doch erst einmal einfach und mache es für den positiven Fall. Der negative Fall ist analog, nur dass die Vorzeichen umgekehrt werden. Als Bsp: 31 / 3 = 10 R 1. D.h. Du musst vom der 30 n-mal 3 abziehen, d.h. so lange Dein Quotient > 0 ist. Du lieferst dann die Anzahl der Schritt für das "div" zurück, der Modulo-Fall ist nicht anderes, als wenn Du noch einmal 3 bei dem letzten Fall abziehst und dann das Vorzeichen des Quotienten umkehrst. Ich würde Dir aber zu for-Schleifen raten, da es sich hier um Zählungen handelt Zitieren
Empfohlene Beiträge
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.