Algorithmus < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:37 Do 10.01.2008 | Autor: | puky |
Aufgabe | Geben Sie eine rekursive Methodean, die bei Aufruf mit Parameter n eine Folge von n öffnenden Klammern gefolgt von einer Folge von n schließenden Klammern erzeugt. Bei Eingabe 5 wird also ((((())))) erzeugt. |
Also ohne Rekursion is ja kein Problem. Aber mit haut irgendwie nich hin. Hab schon probiert es zu Programmieren, klappt aber nich. Hat jemand ne Idee?
|
|
|
|
Hallo puky!
> Geben Sie eine rekursive Methodean, die bei Aufruf mit
> Parameter n eine Folge von n öffnenden Klammern gefolgt von
> einer Folge von n schließenden Klammern erzeugt. Bei
> Eingabe 5 wird also ((((())))) erzeugt.
> Also ohne Rekursion is ja kein Problem. Aber mit haut
> irgendwie nich hin. Hab schon probiert es zu Programmieren,
> klappt aber nich. Hat jemand ne Idee?
Mach ich's mir jetzt zu einfach? Ich würde es so machen:
f(1)=()
f(n)=( f(n-1) )
also einfach immer eine Klammer davor und eine dahinter und dazwischen halt die Funktion für das Argument, das eins kleiner ist. Das ist doch rekursiv, oder?
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:31 Do 10.01.2008 | Autor: | puky |
Hi Bastiane.
Dank dir erstmal für deine Antwort. Glaub aber nich das es so geht. Wenn ich das so Programmier das er mir die Offene und Geschlossene Klammer gleich nacheinander Ausgibt, also so (), gibt er mir bei Eingabe z.B. 3 doch das aus:()()().
Also ich hab ein Programm das mir bei Eingabe 3 schon das ausgibt: (((.
Nur das meine Variable dann leer is. Also krieg ich die geschlossenen Klammern nich mehr hin.
fg puky (-:
|
|
|
|
|
Hallo puky,
Überzeug' dich selbst:
1: |
| 2: | #include <iostream>
| 3: | using namespace std;
| 4: |
| 5: | void f(int n)
| 6: | {
| 7: | if(n == 0)
| 8: | {
| 9: | return;
| 10: | }
| 11: |
| 12: | cout << "(";
| 13: | f(n-1);
| 14: | cout << ")";
| 15: | }
| 16: |
| 17: |
| 18: | int main(int argc, char* argv[])
| 19: | {
| 20: | f(5);
| 21: |
| 22: | return 0;
| 23: | }
|
Viele Grüße
Karl
|
|
|
|