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
???
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.