Ciąg Fibonacciego

0

Witam, mam do napisania program, który będzie wypisywał do pilku wyjściowego ciąg Fibonacciego, mniejszy od wpisanej przez nas liczby, którą pobiera z pliku wejściowego.
Jak wpiszemy : 400
To ma wypisać : n=400
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377

Nie wiem czy dobrze myślę , bo program nie działa poprawnie, nie wiem jak zrobić żeby wypisał mi liczby tego ciągu

public class Zad {
    public static void main(String[] args)throws FileNotFoundException {
Scanner sc = new Scanner(new File("wej.txt"));
    int n = sc.nextInt();
    int a = 0;
    int b = 1;
    int c = a+b;
    int[] tablica;
    tablica = new int[1000];
    
    while(c <= 1000)
    {
        a = b;
        b = c;
        c = a + b;
    }
         for( int i=0;i<=1000; i++)
         {
        tablica[i] = c;
         }   
PrintWriter pw = new PrintWriter(new File("wyj.txt"));
pw.println("" + tablica[i] );
pw.close();
    }
 }

1

Nie potrzebujesz do tego tablicy.

public static void main(String[] args)
{
	Scanner scanner = new Scanner(new File("wej.txt"));
	PrintWriter pw = new PrintWriter(new File("wyj.txt"));

	int a = 1;
	int b = 0;
	int c = 0;
	
	do
	{
		pw.println(c);

		c = a + b;
		a = b;
		b = c;
	} while (c < n);

	pw.close();
}

Nie testowałem kodu w Javie więc nie wiem czy wypisanie do pliku będzie działać jak należy - ale pętla jest ok.

1 użytkowników online, w tym zalogowanych: 0, gości: 1