Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Algorithmen (http://www.informatikerboard.de/board/board.php?boardid=17)
----- Informatik Hausaufgaben (http://www.informatikerboard.de/board/thread.php?threadid=3244)


Geschrieben von informatikshit_ am 24.10.2016 um 10:15:

  Informatik Hausaufgaben

Meine Frage:
Informatik Hausaufgabe abgabetermin heute...kann mit die bitte jemand erledigen bin viel zu doof dazu unglücklich unglücklich unglücklich habs jetzt schon mehrmals versucht aber klappt nich...themen 1. ggt per schleife...2. ggt rekursiv...3.fibonacci

Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
public class Ggt {
 /*
  * Berechnung des ggT zweier Zahlen 
  * nach dem Euklidischen Algorithmus
  */
 private static int ggt(int zahl1, int zahl2) {
   while (zahl2 != 0) {
     if (zahl1 > zahl2) {
       zahl1 = zahl1 - zahl2;
     } else {
       zahl2 = zahl2 - zahl1;
     }
   }
   return zahl1;
 }
 
 /*
  * Hauptprogramm:
  */
 public static void main(String[] args) {
   /*
    * Kommandozeilenargumente einlesen
    * Aufruf: "ggt <zahl1> <zahl2>"
    */
   int ersteZahl = Integer.parseInt(args[0]);
   int zweiteZahl = Integer.parseInt(args[1]);
 
   // berechne ggT mit der Funktion "ggt()"
   int ergebnis = ggt(ersteZahl, zweiteZahl);
 
   // Ausgabe des Ergebnisses:
   System.out.println("Der ggT von "  + ersteZahl + 
       " und " + zweiteZahl + " ist: " + ergebnis);
 }
}


Edit (Karlito): [code]-Umgebung



Geschrieben von eulerscheZahl am 24.10.2016 um 19:10:

 

Die iterative Berechnung passt schonmal.
Rekursiv habe ich als Codeschnipsel abgespeichert:
code:
1:
2:
3:
static long gcd (long a, long b) {
	return a == 0 ? b : gcd (b % a, a);
}


Fibonaccizahlen kannst du rekursiv definieren:
Fibonacci(0) = 0
Fibonacci(1) = 1
Fibonacci(i) = Fibonacci(i-1) + Fibonacci(i-2)

Prüfe, ob das Funktionsargument 0 oder 1 ist, gib dann das entsprechende Ergebnis aus. Sonst mache den rekursiven Aufruf. (Laufzeitmäßig ist die iterative Variante natürlich besser).


Forensoftware: Burning Board, entwickelt von WoltLab GmbH