Hallo zusammen,
ich habe dieses Semester mein Wirtschaftsinformatik Studium angefangen. Jetzt steh ich vor diesem Rätsel und kann es einfach nicht lösen.
Hier das Rätsel:
- den ersten Teil der Aufgabe hab ich geschafft, denn es war leicht zu ertesten, dass es sich um eine Potenzfunktion handelt, aber der zweite Teil verwirrt mich einfach nur. Man soll die unknown Funktion so ändern, dass die Bedingungen unten erfüllt sind und man sieht ja, dass es sich unten um eine Multiplikation von a und b handelt, aber wie soll man das umsetzen ? Bitte ich brauch das.
Gegeben sei die Funktion unknown der Klasse Recursion:
1 public class Recursion {
2 public static int unknown(int a, int b) {
3 if (b == 0) {
4 return 1;
5 }
6 if (b % 2 == 0) {
7 return unknown(a * a, b / 2);
8 }
9 return unknown(a * a, b / 2) * a;
10 }
11 }
Schreiben Sie diese Klasse ab und analysieren Sie die Funktion. Betrachten Sie hierfür beispielsweise
die Ausgabewerte für die folgenden Eingaben:
• a = 2, b = 0
• a = 3, b = 2
• a = 5, b = 3
Welche Funktionalität wird hier implementiert? Benenne Sie die Funktion entsprechend neu und
erstellen Sie einen aussagekräftigen Kommentar, der die Funktionalität beschreibt.
Welche minimalen Änderungen müsste man an der Funktion machen, um folgende Ergebnisse zu
den gegebenen Eingaben zu erhalten?
• a = 1, b = 1; Ergebnis: 1
• a = 2, b = 0; Ergebnis: 0
• a = 0, b = 2; Ergebnis: 0
• a = 3, b = 2; Ergebnis: 6
• a = 2, b = 3; Ergebnis: 6
• a = 5, b = 3; Ergebnis: 15
• a = 3, b = 5; Ergebnis: 15
• a = 10, b = 10; Ergebnis: 100
Kopieren Sie den Methodenrumpf in eine neue Funktion mit den selben Parametern und dem
Namen recursiveA. Wenden Sie nun die Änderungen an, um die neue Funktionalität zu erhalten.
ich habe dieses Semester mein Wirtschaftsinformatik Studium angefangen. Jetzt steh ich vor diesem Rätsel und kann es einfach nicht lösen.
Hier das Rätsel:
- den ersten Teil der Aufgabe hab ich geschafft, denn es war leicht zu ertesten, dass es sich um eine Potenzfunktion handelt, aber der zweite Teil verwirrt mich einfach nur. Man soll die unknown Funktion so ändern, dass die Bedingungen unten erfüllt sind und man sieht ja, dass es sich unten um eine Multiplikation von a und b handelt, aber wie soll man das umsetzen ? Bitte ich brauch das.
Gegeben sei die Funktion unknown der Klasse Recursion:
1 public class Recursion {
2 public static int unknown(int a, int b) {
3 if (b == 0) {
4 return 1;
5 }
6 if (b % 2 == 0) {
7 return unknown(a * a, b / 2);
8 }
9 return unknown(a * a, b / 2) * a;
10 }
11 }
Schreiben Sie diese Klasse ab und analysieren Sie die Funktion. Betrachten Sie hierfür beispielsweise
die Ausgabewerte für die folgenden Eingaben:
• a = 2, b = 0
• a = 3, b = 2
• a = 5, b = 3
Welche Funktionalität wird hier implementiert? Benenne Sie die Funktion entsprechend neu und
erstellen Sie einen aussagekräftigen Kommentar, der die Funktionalität beschreibt.
Welche minimalen Änderungen müsste man an der Funktion machen, um folgende Ergebnisse zu
den gegebenen Eingaben zu erhalten?
• a = 1, b = 1; Ergebnis: 1
• a = 2, b = 0; Ergebnis: 0
• a = 0, b = 2; Ergebnis: 0
• a = 3, b = 2; Ergebnis: 6
• a = 2, b = 3; Ergebnis: 6
• a = 5, b = 3; Ergebnis: 15
• a = 3, b = 5; Ergebnis: 15
• a = 10, b = 10; Ergebnis: 100
Kopieren Sie den Methodenrumpf in eine neue Funktion mit den selben Parametern und dem
Namen recursiveA. Wenden Sie nun die Änderungen an, um die neue Funktionalität zu erhalten.