Napisz program, który obliczy liczbę wywołań rekurencyjnych funkcji fibonacci() dla obliczenia elementu ciągu Fibonacciego o indeksie n. Przetestuj działanie swojego programu dla n o następujących wartościach: 0, 1, 2, 7, 9, 11.
Specyfikacja:
Dane:
n – liczba naturalna, indeks elementu ciągu Fibonacciego
Wynik:
Program wyświetla liczbę wywołań rekurencyjnych funkcji fibonacci dla obliczenia elementu ciągu Fibonacciego o indeksie n.
RkuFfxAuSWT84
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int licznik znak równości 0 średnik.
Linia 5. long long fibonacci otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. licznik plus plus średnik.
Linia 7. if otwórz nawias okrągły n znak równości znak równości 0 zamknij nawias okrągły return 0 średnik.
Linia 8. if otwórz nawias okrągły n znak równości znak równości 1 zamknij nawias okrągły return 1 średnik.
Linia 9. 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 10. zamknij nawias klamrowy.
Linia 12. int ileWywolan otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. licznik znak równości 0 średnik.
Linia 14. fibonacci otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 15. return licznik średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. cout otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 0 zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 1 zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 20. cout otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 2 zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 7 zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 21. cout otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 9 zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny ileWywolan otwórz nawias okrągły 11 zamknij nawias okrągły średnik.
Linia 22. zamknij nawias klamrowy.
21
Ćwiczenie 2
Napisz program, który obliczy element ciągu Fibonacciego o indeksie n, a następnie sprawdzi, czy ten element jest liczbą pierwszą i wypisze odpowiedni komunikat. Przetestuj działanie swojego programu dla elementu ciągu Fibonacciego o indeksie równym 11.
Specyfikacja:
Dane:
n – liczba naturalna, indeks elementu ciągu Fibonacciego
Wynik:
Program wyświetla element ciągu Fibonacciego o indeksie n oraz komunikat „To jest liczba pierwsza”, jeżeli element ciągu Fibonacciego o indeksie n jest liczbą pierwszą lub „To nie jest liczba pierwsza”, jeżeli element o indeksie n nie jest liczbą pierwszą.
R1SxJYnYB2z3B
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. long long fibonacci otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. if otwórz nawias okrągły n znak równości znak równości 0 zamknij nawias okrągły return 0 średnik.
Linia 6. if otwórz nawias okrągły n znak równości znak równości 1 zamknij nawias okrągły return 1 średnik.
Linia 7. 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 8. zamknij nawias klamrowy.
Linia 10. bool czyPierwsza otwórz nawias okrągły int wynik zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. if otwórz nawias okrągły wynik otwórz nawias ostrokątny 2 zamknij nawias okrągły return false średnik.
Linia 12. for otwórz nawias okrągły int i znak równości 2 średnik i asterysk i otwórz nawias ostrokątny znak równości wynik średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. if otwórz nawias okrągły wynik procent i znak równości znak równości 0 zamknij nawias okrągły return false średnik.
Linia 14. zamknij nawias klamrowy.
Linia 15. return true średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. int n znak równości 11 średnik.
Linia 20. int wynik znak równości fibonacci otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 21. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wynik średnik.
Linia 22. if otwórz nawias okrągły czyPierwsza otwórz nawias okrągły wynik zamknij nawias okrągły zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów To jest liczba pierwsza cudzysłów średnik.
Linia 23. else cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów To nie jest liczba pierwsza cudzysłów średnik.
Linia 24. zamknij nawias klamrowy.
31
Ćwiczenie 3
Napisz program, który obliczy liczbę wywołań rekurencyjnych funkcji fibonacci() z argumentami 2, 1 oraz 0 przy obliczaniu elementu ciągu Fibonacciego o indeksie n. Przetestuj działanie swojego programu dla elementu ciągu o indeksie równym 13.
Specyfikacja:
Dane:
n – liczba naturalna, indeks elementu ciągu Fibonacciego
Wynik:
Program wyświetla liczbę wywołań rekurencyjnych fibonacci(2), fibonacci(1) oraz fibonacci(0) przy obliczaniu elementu ciągu Fibonacciego o indeksie n.
R9CTQADAAeOXD
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int licznik0 znak równości 0 średnik.
Linia 5. int licznik1 znak równości 0 średnik.
Linia 6. int licznik2 znak równości 0 średnik.
Linia 7. long long fibonacci otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. if otwórz nawias okrągły n znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. licznik0 plus plus średnik.
Linia 10. return 0 średnik.
Linia 11. zamknij nawias klamrowy.
Linia 12. if otwórz nawias okrągły n znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. licznik1 plus plus średnik.
Linia 14. return 1 średnik.
Linia 15. zamknij nawias klamrowy.
Linia 16. if otwórz nawias okrągły n znak równości znak równości 2 zamknij nawias okrągły licznik2 plus plus średnik.
Linia 17. 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 18. zamknij nawias klamrowy.
Linia 20. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. fibonacci otwórz nawias okrągły 13 zamknij nawias okrągły średnik.
Linia 22. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Liczba wywolan fibonacci otwórz nawias okrągły 2 zamknij nawias okrągły dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny licznik2 otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 23. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Liczba wywolan fibonacci otwórz nawias okrągły 1 zamknij nawias okrągły dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny licznik1 otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 24. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Liczba wywolan fibonacci otwórz nawias okrągły 0 zamknij nawias okrągły dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny licznik0 średnik.
Linia 25. zamknij nawias klamrowy.