liberte skrev:
Hej på er!
Jag är ny här och rätt så nybörjare i Javaprogrammering.
Jag skulle gärna få hjälp för att få min kod att fungera.
Uppgiften är att skriva en kod som ska beräkna och skriva ut de 10 första Fibonacci-talen(1,1,2,3,5,...) och som beräknas med följande formeln:
F(k)= F(k-1)+F(k-2) där F(o) = 1, F(1) = 1.
Koden ser ut så här:
public class Fibonacci {
public static void main(String[]args){
int\[\] theNbrs ;
theNbrs\[0\] = 1;
theNbrs\[1\] =1;
for (int k=2; k\<theNbrs.length; k++)
theNbrs\[k\] = theNbrs\[k-1\] + theNbrs\[k-2\];
System.out.println(theNbrs\[k\]);
}
}
Jag får som exekveringsfel det här:
C:\Documents and Settings\Mina dokument\algorithm\Fibonacci.java:11: cannot find symbol
symbol : variable k
location: class Fibonacci
System.out.println(theNbrs[k]);
^
1 error
Process completed.
Hur ska jag rätta till det här :q ???
Ytterst tacksam för all hjälp
Det första som är fel är deklarationen av den array som du använder dig av. Du måste instansiera theNbrs innan du kan göra någon tilldelning i arrayen.
int[] theNbrs;
blir
int[] theNbrs = new int[10];
Du kommer att behöva 10 positioner för att lagra arrayen.
Nästa sak du måste fixa är att fundera på for-satsen. Du vill titta på alla tal upp till 10...
Sedan är att får rätt i måsvingeträsket. Ta till vana att ALLTID använda dig av måsvingar när du öppnar ett nytt scope, så som du t.ex. gör med for-satsen (eller med if, else, switch, metoder o.s.v.). Även om det bara skall köras en enda sak inne i scopet. Måsvingarna gör ingenting för den slutligt kompilerade koden, men hjälper till med läsbarhet och avlusning.
Så här hade jag löst uppgiften:
public class Fibonacci {
public static void main(String[] args) {
int theNbrs_minor = 1;
int theNbrs_major = 1;
int theNbrs_next = 0;
System.out.println("F(0) = " + theNbrs_minor);
System.out.println("F(1) = " + theNbrs_major);
for (int k = 2; k < 10; k++) {
theNbrs_next = theNbrs_minor + theNbrs_major;
System.out.println("F("+k+")= " + theNbrs_next);
theNbrs_minor = theNbrs_major;
theNbrs_major = theNbrs_next;
}
}
}
Det öppnar för att läsa in argument till applikationen så att jag kan ställa vilka fibonacci-talserier jag vill.