Fibonacci Zahlen rekursiv < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:43 Do 13.12.2012 | Autor: | Selise |
Aufgabe | Fibonacci Zahlen rekursiv berechnen |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo
ich habe hier ein Program, das Fibonacci Zahlen rekursiv berechnen soll und ausgeben. Es stimmt aber nicht mit den erwarteten Werten überein. Kann mir jemand hinweisen, wo der Fehler liegt?
#include<stdio.h>
#include<stdlib.h>
int fib(int n)
{
if(n>=0 || n<=1) return n;
if(n>1)
return(fib(n-1) + fib(n-2));
}
/* main-Funktion mit ein paar Testfaellen */
int main(int argc, char *argv[])
{
(void) printf("fib(0) - erwartet: %d erhalten: [mm] %d\n", [/mm]
0, fib(0));
(void) printf("fib(1) - erwartet: %d erhalten: [mm] %d\n", [/mm]
1, fib(1));
(void) printf("fib(2) - erwartet: %d erhalten: [mm] %d\n", [/mm]
1, fib(2));
(void) printf("fib(6) - erwartet: %d erhalten: [mm] %d\n", [/mm]
8, fib(6));
(void) printf("fib(20) - erwartet: %d erhalten: [mm] %d\n", [/mm]
6765, fib(20));
(void) printf("fib(31) - erwartet: %d erhalten: [mm] %d\n", [/mm]
1346269, fib(31));
return EXIT_SUCCESS;
}
Danke sehr
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Hallo Selise,
> Fibonacci Zahlen rekursiv berechnen
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
>
>
> Hallo
> ich habe hier ein Program, das Fibonacci Zahlen rekursiv
> berechnen soll und ausgeben. Es stimmt aber nicht mit den
> erwarteten Werten überein. Kann mir jemand hinweisen, wo
> der Fehler liegt?
>
Die erste Abfrage in der Funktion fib muss mit "&&" erfolgen:
if(n>=0 && n<=1) return n;
> #include<stdio.h>
> #include<stdlib.h>
>
> int fib(int n)
> {
> if(n>=0 || n<=1) return n;
>
> if(n>1)
> return(fib(n-1) + fib(n-2));
> }
>
> /* main-Funktion mit ein paar Testfaellen */
> int main(int argc, char *argv[])
> {
> (void) printf("fib(0) - erwartet: %d erhalten: [mm]%d\n",[/mm]
> 0, fib(0));
> (void) printf("fib(1) - erwartet: %d erhalten: [mm]%d\n",[/mm]
> 1, fib(1));
> (void) printf("fib(2) - erwartet: %d erhalten: [mm]%d\n",[/mm]
> 1, fib(2));
> (void) printf("fib(6) - erwartet: %d erhalten: [mm]%d\n",[/mm]
> 8, fib(6));
> (void) printf("fib(20) - erwartet: %d erhalten: [mm]%d\n",[/mm]
> 6765, fib(20));
> (void) printf("fib(31) - erwartet: %d erhalten: [mm]%d\n",[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
> 1346269, fib(31));
>
> return EXIT_SUCCESS;
> }
>
>
>
> Danke sehr
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:09 Do 13.12.2012 | Autor: | Selise |
Danke für Ihre Antwort. Habe leider nicht ganz verstanden, was Sie meinen. Bin Anfänger erst. Bei mir ist doch alles paarweise? Und wo soll ich nochmal die && dazuschreiben??
Danke im Voraus
|
|
|
|
|
Hallo Selise,
> Danke für Ihre Antwort. Habe leider nicht ganz
Wir sind hier alle per "Du".
> verstanden, was Sie meinen. Bin Anfänger erst. Bei mir ist
> doch alles paarweise? Und wo soll ich nochmal die &&
> dazuschreiben??
>
"||" in der ersten if-Abfrage der Funktion fib
ist durch "&&" zu ersetzen.
> Danke im Voraus
Gruss
MathePower
|
|
|
|