Thema: Rekursive Methoden

paco89

Bekanntes Mitglied
hallo,

ich hab folgende versucht zu lösen:

a) Die Funktion f sei definiert durch f(n,a,b) = a, falls n=0 und f(n-1,a+b,a) falls n > 0.


so und dazu habe ich mir folgende rekursive Methode gebastelt:

Java:
public class Fibonacci 
{
	 public int Fib(int n, int a, int b)
	{	
		tmp = 0;
		if(n=0)
			tmp = a;
		else if(n>0)
			tmp = Fib(n-1,a+b, a);
			
		return tmp;
			
			
	}
}


und als TestKlasse dann:

Java:
public class TestFib 
{
	public static void main (String[] args)
	{
		Fib(5,7,8);
	}
}



aber wenn ich das kompiliere kommt da die meldung, dass Fib(5,7,8) nicht gefunden werden kann. ich hab aber beide dateien doch in demselben ordner und außerdem ist doch meine methode Fib in der ersten klasse doch public oder? oder überseh ich da etwas?
 

eRaaaa

Top Contributor
Die Methode Fib in deiner Fibonacci-Klasse ist aber nicht static, also brauchst du schon ein Objekt der Fibonacci-Klasse (oder eben die Methode static machen)
Generell sind da noch einige Fehler, z.B. ist tmp nirgends deklariert und du solltest dir NamingConventions direkt gleich aneignen (Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.)
 

The_S

Top Contributor
Methodennamen schreibt man klein. Du musst Java schon noch sagen, in welcher Klasse deine Methode liegt:

Java:
Fibonacci.Fib(5,7,8)
 

fibeline

Mitglied
Noch ein Fehler:
Java:
if(n=0)
Java:
n=0
ist eine Zuweisung, aber du willst ja vergleichen. Also:
Java:
if(n==0)

Klammern solltest du auch immer benutzen, dann ist dein Code übersichtlicher und guter Stil ist es auch :)

Gruß
 
Zuletzt bearbeitet:

Neue Themen


Oben