/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hjælp med algoritme
Fra : Lars Mortensen


Dato : 27-09-01 22:40

Hvordan skriver man følgende algoritme i java.

Fibonacci tal 1 1 2 3 5 8 13 21 34 55 89 skal gennemløbe i en for løkke 50
gange.

Algoritmen : Hvis n = 1 Eller n = 2 Så
fib :=1
Ellers
fib := fib(n-1) + fib(n-2)




 
 
HamSelv (28-09-2001)
Kommentar
Fra : HamSelv


Dato : 28-09-01 00:24

"Lars Mortensen" <larsmo@worldonline.dk> wrote in message
news:i2Ns7.696$Ay.91617@news010.worldonline.dk...
> Hvordan skriver man følgende algoritme i java.
>
> Fibonacci tal 1 1 2 3 5 8 13 21 34 55 89 skal gennemløbe i en for løkke
50
> gange.
>
> Algoritmen : Hvis n = 1 Eller n = 2 Så
> fib :=1
> Ellers
> fib := fib(n-1) + fib(n-2)


public int fib(int n)
{
if (n <= 2)
return 1;
else
return fib(n-1) + fib(n-2);
}


Oevnstående metode smider du ind i en for løkke, og voila, du har fibonacci
tallene

--

HamSelv

To reply, remove NOSPAM in email.



Ulrik Magnusson (28-09-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 28-09-01 06:28

Lars Mortensen wrote:

> Hvordan skriver man følgende algoritme i java.
>
> Fibonacci tal 1 1 2 3 5 8 13 21 34 55 89 skal gennemløbe i en for løkke 50
> gange.

Hvis du mener "implementering af fib uden rekursion", så skulle denne virke for

n >= 2:

// find det n-te fibonacci tal
static int fib( int n )
{
int[] res = new int[n+1];// res[0] bruges ikke
res[1] = 1;
res[2] = 1;
for( int i = 3; i <= n; i++ )
{
res[i] = res[i-1] + res[i-2];
}
return res[n];
}

Ulrik Magnusson


Ulrik Magnusson (30-09-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-09-01 09:46

Ulrik Magnusson wrote:

> Hvis du mener "implementering af fib uden rekursion", så skulle denne virke for
> n >= 2:

[snip]

og knapt så meget med hovedet under armen:

// find det n-te fibonacci tal for n >= 1
static int fib( int n )
{
int fibm1 = 1;
int fibm2 = 1;
int res = 1;
for( int i = 3; i <= n; i++ )
{
res = fibm1 + fibm2;
fibm2 = fibm1;
fibm1 = res;
}
return res;
}

Ulrik Magnusson


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408928
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste