[java] Successione di Fibonacci
Ciao a tutti.
Ho un esercizio che chiede di scrivere un programma in Java che calcoli i primi $n$ numeri della successione di Fibonacci in modo ricorsivo.
Ho scritto questo:
Ora, ho notato che il mio codice funziona solo per $n$ piuttosto piccoli, nel senso che dal 47 in poi il programma stampa dei numeri strani (negativi, per esempio).
Cosa vuol dire? E' un problema di codice o di memoria?
Ho un esercizio che chiede di scrivere un programma in Java che calcoli i primi $n$ numeri della successione di Fibonacci in modo ricorsivo.
Ho scritto questo:
class Fibonacci{
public static void main(String[] args){
System.out.print("A che numero devo fermarmi? ");
int stop = SavitchIn.readLineInt();
System.out.println("I primi " + stop + " numeri della sequenza di fibonacci sono: ");
int n = 0;
do{
System.out.println("fib(" + n + ") = " + fib(n));
n++;
} while(n <= stop);
}
static int fib(int n){
if(n < 1) return 0;
if(n < 2) return 1;
else return fib(n - 1) + fib(n - 2);
}
}Ora, ho notato che il mio codice funziona solo per $n$ piuttosto piccoli, nel senso che dal 47 in poi il programma stampa dei numeri strani (negativi, per esempio).
Cosa vuol dire? E' un problema di codice o di memoria?
Risposte
Il numero generato è troppo grande, quindi ti conviene usare long oppure double.
Potevo arrivarci, in effetti...
Grazie!
Grazie!