[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!
