import java.util.Scanner; public class Esercizio5 { public static void main(String[] args) { System.out.print("Immeti n: "); Scanner kbd = new Scanner(System.in); int n = kbd.nextInt(); System.out.println("I primi " + n + " numeri della successione di Fibonacci sono: "); if (n == 1) // Visualizza direttamente il risultato per il caso 1 System.out.println("0"); else if (n == 2) // Visualizza direttamente il risultato per il caso 2 System.out.println("0 1"); else { // Caso generale: prima di tutto stampo i primi due valori della successione System.out.print("0 1 "); // fibm2 e fibm1 conterranno all'inizio i primi due valori della successione int fibm2 = 0; int fibm1 = 1; for (int i = 1; i <= n - 2; i++) { // In generale, in questo punto del programma, fibm2 l'i-2 esimo valore // della successione, mentre fibm1 contiene l'i-1 esimo valore. // L'istruzione seguente calcola il valore del'i-esimo numero di Fibobacci int fibnew = fibm2 + fibm1; System.out.print(fibnew + " "); // Sposta il valori calcolati: dopo queste due istruzioni fibm2 contine l'i-1 // esimo numero di Fibonacci e fibm1 contiene l'i esimo numero di Fibonacci. // Siamo pronti così a ricominciare un altro ciclo. fibm2 = fibm1; fibm1 = fibnew; } System.out.println(); } kbd.close(); } }