Napisz program, który wypisze wszystkie wyrazy ciągu Fibonacciego mniejsze od liczby n w kolejności niemalejącej. Dla dwóch pierwszych wyrazów należy przyjąć, że są równe odpowiednio 0 i 1. Swój program przetestuj dla n = 100.
Specyfikacja:
Dane:
n – liczba naturalna, od której wypisane wyrazy mają być mniejsze
Wynik:
Program wypisuje wszystkie wyrazy ciągu Fibonacciego mniejsze od n, w kolejności niemalejącej, każdy wyraz w nowej linii.
R1012tKEUSJrw
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 100 średnik.
Linia 5. long a znak równości 0 średnik.
Linia 6. long b znak równości 1 średnik.
Linia 7. while otwórz nawias okrągły a otwórz nawias ostrokątny n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. System kropka out kropka println otwórz nawias okrągły a zamknij nawias okrągły średnik.
Linia 9. long suma znak równości a plus b średnik.
Linia 10. a znak równości b średnik.
Linia 11. b znak równości suma średnik.
Linia 12. zamknij nawias klamrowy.
Linia 13. zamknij nawias klamrowy.
Linia 14. zamknij nawias klamrowy.
21
Ćwiczenie 2
Napisz program, który przedstawi liczbę n jako sumę dwóch wyrazów ciągu Fibonacciego lub wypisze komunikat BRAK w przypadku braku rozwiązania. Rozwiązanie, jeśli istnieje, należy wypisać w postaci dwóch liczb oddzielonych spacją, podanych w kolejności niemalejącej. Dla dwóch pierwszych wyrazów należy przyjąć, że są równe odpowiednio 0 i 1. Przetestuj swój program dla n = 42.
Specyfikacja:
Dane:
n – liczba naturalna, której rozkład należy obliczyć;
Wynik:
Program wyświetla dwa elementy ciągu Fibonacciego, oddzielone spacją w kolejności niemalejącej, które sumują się do n lub komunikat BRAK w przypadku braku rozwiązania.
Ra6kUyLway9F6
Przykładowe rozwiązanie zadania:
Linia 1. import java kropka util kropka List średnik.
Linia 2. import java kropka util kropka ArrayList średnik.
Linia 4. public class Main otwórz nawias klamrowy.
Linia 5. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. int n znak równości 42 średnik.
Linia 7. rozklad otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 8. zamknij nawias klamrowy.
Linia 10. static List otwórz nawias ostrokątny Long zamknij nawias ostrokątny fibo znak równości new ArrayList otwórz nawias ostrokątny zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 12. public static void rozklad otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. long a znak równości 0 średnik.
Linia 14. long b znak równości 1 średnik.
Linia 16. while otwórz nawias okrągły b otwórz nawias ostrokątny n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. fibo kropka add otwórz nawias okrągły a zamknij nawias okrągły średnik.
Linia 19. long suma znak równości a plus b średnik.
Linia 20. a znak równości b średnik.
Linia 21. b znak równości suma średnik.
Linia 22. zamknij nawias klamrowy.
Linia 24. int i znak równości 0 średnik.
Linia 25. while otwórz nawias okrągły otwórz nawias okrągły a plus fibo kropka get otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły otwórz nawias ostrokątny n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. i plus plus średnik.
Linia 27. zamknij nawias klamrowy.
Linia 29. if otwórz nawias okrągły otwórz nawias okrągły a plus fibo kropka get otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły znak równości znak równości n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 30. System kropka out kropka println otwórz nawias okrągły fibo kropka get otwórz nawias okrągły i zamknij nawias okrągły plus cudzysłów cudzysłów plus a zamknij nawias okrągły średnik.
Linia 31. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 32. System kropka out kropka println otwórz nawias okrągły cudzysłów BRAK cudzysłów zamknij nawias okrągły średnik.
Linia 33. zamknij nawias klamrowy.
Linia 34. zamknij nawias klamrowy.
Linia 35. zamknij nawias klamrowy.
31
Ćwiczenie 3
Napisz program, który obliczy liczbę wywołań rekurencyjnych funkcji fibonacci() dla obliczenia elementu ciągu Fibonacciego o indeksie n. Uwzględniamy wszystkie wywołania. Przetestuj działanie programu dla elementu ciągu o indeksie 11.
Specyfikacja:
Dane:
n – indeks elementu ciągu Fibonacciego (indeksy liczone od 0); liczba naturalna
Wynik:
Program wyświetla liczbę wywołań rekurencyjnych danej funkcji dla obliczenia elementu ciągu Fibonacciego o indeksie n.
RnUrf89JcSinl
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. static int licznik średnik.
Linia 4. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int n znak równości 11 średnik.
Linia 6. System kropka out kropka println otwórz nawias okrągły ileWywolan otwórz nawias okrągły n zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 7. zamknij nawias klamrowy.
Linia 9. public static int ileWywolan otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. licznik znak równości 0 średnik.
Linia 11. fibonacci otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 12. return licznik średnik.
Linia 13. zamknij nawias klamrowy.
Linia 15. public static long fibonacci otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. licznik plus plus średnik.
Linia 17. if otwórz nawias okrągły n znak równości znak równości 0 kreska pionowa kreska pionowa n znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. return n średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. return fibonacci otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus fibonacci otwórz nawias okrągły n minus 2 zamknij nawias okrągły średnik.
Linia 22. zamknij nawias klamrowy.
Linia 23. zamknij nawias klamrowy.