Słowa Fibonacciego to słowa zdefiniowane przez następującą zależność.
Kilka pierwszych słów Fibonacciego wypisano poniżej:
Fraktal Fibonacciego to kształt powstający przez odpowiednią graficzną interpretację słów Fibonacciego, według następujących zasad:
Dla każdego symbolu na pozycji k (numerujemy od zera):
Rysuj odcinek w obecnym kierunku.
Jeżeli znak na pozycji k to 0:
skręć w lewo, jeśli k jest parzyste,
skręć w prawo, jeśli k jest nieparzyste.
Rysowanie zaczynamy z dolnego lewego rogu, początkowy kierunek ustawiamy na prawo.
Fraktale Fibonacciego dla kilku pierwszych stopni pokazano poniżej:
RF2unw5CuFNP0
RFUmHomu8InIT
R5vsEeD6omEro
R1Eo0NgqqKMfn
Rfr2M3aHOnkHa
Napisz program, który dla każdej liczby z tablicy dane wypisze słowo Fibonacciego stopnia k. Następnie dla najdłuższego z wypisanych słów utworzy fraktal Fibonacciego.
Przetestuj działanie programu dla tablicy dane o następującej zawartości:
Linia 1. 4.
Linia 2. 3.
Linia 3. 12.
Linia 4. 8.
Specyfikacja problemu:
Dane:
n – liczba naturalna; liczba słów do wygenerowania
dane[0..n - 1] – tablica zawierająca n liczb, dla których należy wypisać słowo Fibonacciego stopnia k
Wynik:
Słowa Fibonacciego oddzielone znakiem nowej linii oraz kształt (utworzony np. graficznie w tabeli lub w konsoli) fraktala Fibonacciego dla najdłuższego wypisanego słowa Fibonacciego.
Linia 1. 01001010.
Linia 2. 01001.
Linia 3. 01001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010.
Linia 4. 0100101001001010010100100101001001010010100100101001010.
Przykłady poprawnie utworzonych fraktali dla powyższego zadania:
Chcąc wygenerować fraktal w tabeli lub tekstowo, możesz założyć, że jego rozmiar nie będzie większy niż .
Ważne!
W poniższych programach sprawdzających nie ma możliwości weryfikacji poprawności utworzonej grafiki. Fraktal należy zatem zrealizować w postaci tekstowej w taki sposób, jak powyżej.
11
Pokaż ćwiczenia:
1
JĘZYK C++
21
Ćwiczenie 1
RBLlB2Kz1KUds1
Pobierz poniższy plik. W pierwszej linijce zawiera on liczbę testów n. Każda kolejna linijka zawiera stopień słowa Fibonacciego, które należy wypisać. Napisz program w środowisku programistycznym na swoim komputerze, w którym załadujesz dane z pobranego pliku, wypiszesz odpowiednie słowa Fibonacciego oraz utworzysz fraktal Fibonacciego dla najdłuższego wypisanego słowa Fibonacciego.
R1B1oZjJRsOSJ
Przykładowe rozwiązanie
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 4. const int ROZMIAR podkreślnik MAX znak równości 100 średnik.
Linia 6. std dwukropek dwukropek string slowo podkreślnik fibonacciego otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. 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 8. return cudzysłów 0 cudzysłów średnik.
Linia 9. zamknij nawias klamrowy.
Linia 10. 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 11. return cudzysłów 01 cudzysłów średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. return slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 2 zamknij nawias okrągły średnik.
Linia 15. zamknij nawias klamrowy.
Linia 17. void obrot podkreślnik lewo otwórz nawias okrągły int ampersant kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. kierunek znak równości otwórz nawias okrągły kierunek plus 3 zamknij nawias okrągły procent 4 średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. void obrot podkreślnik prawo otwórz nawias okrągły int ampersant kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. kierunek znak równości otwórz nawias okrągły kierunek plus 1 zamknij nawias okrągły procent 4 średnik.
Linia 23. zamknij nawias klamrowy.
Linia 25. void naprzod otwórz nawias okrągły int ampersant x przecinek int ampersant y przecinek int kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. if otwórz nawias okrągły kierunek znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 27. x znak równości x plus 1 średnik.
Linia 28. zamknij nawias klamrowy.
Linia 29. else if otwórz nawias okrągły kierunek znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 30. y znak równości y minus 1 średnik.
Linia 31. zamknij nawias klamrowy.
Linia 32. else if otwórz nawias okrągły kierunek znak równości znak równości 2 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 33. x znak równości x minus 1 średnik.
Linia 34. zamknij nawias klamrowy.
Linia 35. else otwórz nawias klamrowy.
Linia 36. y znak równości y plus 1 średnik.
Linia 37. zamknij nawias klamrowy.
Linia 38. zamknij nawias klamrowy.
Linia 40. int wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły int x przecinek int y przecinek int mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 41. return mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX minus y minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy średnik.
Linia 42. zamknij nawias klamrowy.
Linia 44. void rysuj podkreślnik mape otwórz nawias okrągły int mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy przecinek int x podkreślnik rozmiar przecinek int y podkreślnik rozmiar zamknij nawias okrągły otwórz nawias klamrowy.
Linia 45. prawy ukośnik prawy ukośnik rysuj od góry.
Linia 46. for otwórz nawias okrągły int y znak równości y podkreślnik rozmiar minus 1 średnik y zamknij nawias ostrokątny znak równości 0 średnik minus minus y zamknij nawias okrągły otwórz nawias klamrowy.
Linia 47. for otwórz nawias okrągły int x znak równości 0 średnik x otwórz nawias ostrokątny x podkreślnik rozmiar średnik plus plus x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 48. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny otwórz nawias okrągły wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 znak zapytania apostrof kratka apostrof dwukropek apostrof apostrof zamknij nawias okrągły średnik.
Linia 49. zamknij nawias klamrowy.
Linia 50. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 51. zamknij nawias klamrowy.
Linia 52. zamknij nawias klamrowy.
Linia 54. void zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły int x przecinek int y przecinek int mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 55. mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX minus y minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy znak równości 1 średnik.
Linia 56. zamknij nawias klamrowy.
Linia 58. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 59. int n znak równości 4 średnik.
Linia 60. int dane otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 4 przecinek 3 przecinek 12 przecinek 8 zamknij nawias klamrowy średnik.
Linia 62. int dane podkreślnik max znak równości 0 średnik.
Linia 64. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 65. if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny dane podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 66. dane podkreślnik max znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 67. zamknij nawias klamrowy.
Linia 69. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny slowo podkreślnik fibonacciego otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 70. zamknij nawias klamrowy.
Linia 72. std dwukropek dwukropek string slowo podkreślnik max znak równości slowo podkreślnik fibonacciego otwórz nawias okrągły dane podkreślnik max zamknij nawias okrągły średnik.
Linia 74. prawy ukośnik prawy ukośnik tablica 100x100 wypełniona zerami.
Linia 75. int mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy średnik.
Linia 76. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 77. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus j zamknij nawias okrągły otwórz nawias klamrowy.
Linia 78. mapa2d otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości 0 średnik.
Linia 79. zamknij nawias klamrowy.
Linia 80. zamknij nawias klamrowy.
Linia 82. int x znak równości 0 przecinek y znak równości 0 średnik.
Linia 83. prawy ukośnik prawy ukośnik 0 minus prawo.
Linia 84. prawy ukośnik prawy ukośnik 1 minus dół.
Linia 85. prawy ukośnik prawy ukośnik 2 minus lewo.
Linia 86. prawy ukośnik prawy ukośnik 3 minus góra.
Linia 87. int kierunek znak równości 0 średnik.
Linia 89. prawy ukośnik prawy ukośnik generuj kształt.
Linia 90. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny slowo podkreślnik max kropka length otwórz nawias okrągły zamknij nawias okrągły średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 91. zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły średnik.
Linia 92. naprzod otwórz nawias okrągły x przecinek y przecinek kierunek zamknij nawias okrągły średnik.
Linia 94. if otwórz nawias okrągły slowo podkreślnik max otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości apostrof 0 apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 95. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 96. obrot podkreślnik lewo otwórz nawias okrągły kierunek zamknij nawias okrągły średnik.
Linia 97. zamknij nawias klamrowy.
Linia 98. else otwórz nawias klamrowy.
Linia 99. obrot podkreślnik prawo otwórz nawias okrągły kierunek zamknij nawias okrągły średnik.
Linia 100. zamknij nawias klamrowy.
Linia 101. zamknij nawias klamrowy.
Linia 102. zamknij nawias klamrowy.
Linia 104. prawy ukośnik prawy ukośnik znajdź rzeczywisty rozmiar kształtu.
Linia 105. int x podkreślnik max znak równości 0 przecinek y podkreślnik max znak równości 0 średnik.
Linia 106. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 107. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus j zamknij nawias okrągły otwórz nawias klamrowy.
Linia 108. if otwórz nawias okrągły wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły j przecinek i przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 109. if otwórz nawias okrągły j zamknij nawias ostrokątny x podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 110. x podkreślnik max znak równości j średnik.
Linia 111. zamknij nawias klamrowy.
Linia 112. if otwórz nawias okrągły i zamknij nawias ostrokątny y podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 113. y podkreślnik max znak równości i średnik.
Linia 114. zamknij nawias klamrowy.
Linia 115. zamknij nawias klamrowy.
Linia 116. zamknij nawias klamrowy.
Linia 117. zamknij nawias klamrowy.
Linia 119. int rozmiar podkreślnik y znak równości y podkreślnik max plus 1 przecinek rozmiar podkreślnik x znak równości x podkreślnik max plus 1 średnik.
Linia 121. prawy ukośnik prawy ukośnik rysuj kształt.
Linia 122. rysuj podkreślnik mape otwórz nawias okrągły mapa2d przecinek rozmiar podkreślnik x przecinek rozmiar podkreślnik y zamknij nawias okrągły średnik.
Linia 123. zamknij nawias klamrowy.
Dla przykładowych danych zawartych w pliku tekstowym, wynik powinien wynieść:
Pobierz poniższy plik. W pierwszej linijce zawiera on liczbę testów n. Każda kolejna linijka zawiera stopień słowa Fibonacciego, które należy wypisać. Napisz program w środowisku programistycznym na swoim komputerze, w którym załadujesz dane z pobranego pliku, wypiszesz odpowiednie słowa Fibonacciego oraz utworzysz fraktal Fibonacciego dla najdłuższego wypisanego słowa Fibonacciego.
RJk1Wx6U8uEvQ
Przykładowe rozwiązanie
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. final static int ROZMIAR podkreślnik MAX znak równości 100 średnik.
Linia 4. static String slowo podkreślnik fibonacciego 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 otwórz nawias klamrowy.
Linia 6. return cudzysłów 0 cudzysłów średnik.
Linia 7. zamknij nawias klamrowy.
Linia 8. 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 9. return cudzysłów 01 cudzysłów średnik.
Linia 10. zamknij nawias klamrowy.
Linia 12. return slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 2 zamknij nawias okrągły średnik.
Linia 13. zamknij nawias klamrowy.
Linia 15. static int obrot podkreślnik lewo otwórz nawias okrągły int kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. return otwórz nawias okrągły kierunek plus 3 zamknij nawias okrągły procent 4 średnik.
Linia 17. zamknij nawias klamrowy.
Linia 19. static int obrot podkreślnik prawo otwórz nawias okrągły int kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 20. return otwórz nawias okrągły kierunek plus 1 zamknij nawias okrągły procent 4 średnik.
Linia 21. zamknij nawias klamrowy.
Linia 23. static void naprzod otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy xy przecinek int kierunek zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. if otwórz nawias okrągły kierunek znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. plus plus xy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy średnik.
Linia 26. zamknij nawias klamrowy.
Linia 27. else if otwórz nawias okrągły kierunek znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 28. minus minus xy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy średnik.
Linia 29. zamknij nawias klamrowy.
Linia 30. else if otwórz nawias okrągły kierunek znak równości znak równości 2 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 31. minus minus xy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy średnik.
Linia 32. zamknij nawias klamrowy.
Linia 33. else otwórz nawias klamrowy.
Linia 34. plus plus xy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. zamknij nawias klamrowy.
Linia 38. static int wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły int x przecinek int y przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy mapa2d zamknij nawias okrągły otwórz nawias klamrowy.
Linia 39. return mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX minus y minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy średnik.
Linia 40. zamknij nawias klamrowy.
Linia 42. static void rysuj podkreślnik mape otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy mapa2d przecinek int x podkreślnik rozmiar przecinek int y podkreślnik rozmiar zamknij nawias okrągły otwórz nawias klamrowy.
Linia 43. prawy ukośnik prawy ukośnik rysuj od góry.
Linia 44. for otwórz nawias okrągły int y znak równości y podkreślnik rozmiar minus 1 średnik y zamknij nawias ostrokątny znak równości 0 średnik minus minus y zamknij nawias okrągły otwórz nawias klamrowy.
Linia 45. for otwórz nawias okrągły int x znak równości 0 średnik x otwórz nawias ostrokątny x podkreślnik rozmiar średnik plus plus x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 46. System kropka out kropka print otwórz nawias okrągły otwórz nawias okrągły wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 znak zapytania apostrof kratka apostrof dwukropek apostrof apostrof zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 47. zamknij nawias klamrowy.
Linia 48. System kropka out kropka print otwórz nawias okrągły apostrof lewy ukośnik n apostrof zamknij nawias okrągły średnik.
Linia 49. zamknij nawias klamrowy.
Linia 50. zamknij nawias klamrowy.
Linia 52. static void zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy xy przecinek int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy mapa2d zamknij nawias okrągły otwórz nawias klamrowy.
Linia 53. mapa2d otwórz nawias kwadratowy ROZMIAR podkreślnik MAX minus xy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy xy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy zamknij nawias kwadratowy znak równości 1 średnik.
Linia 54. zamknij nawias klamrowy.
Linia 56. 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 57. int n znak równości 4 średnik.
Linia 58. int otwórz nawias kwadratowy zamknij nawias kwadratowy dane znak równości otwórz nawias klamrowy 4 przecinek 3 przecinek 12 przecinek 8 zamknij nawias klamrowy średnik.
Linia 60. int dane podkreślnik max znak równości 0 średnik.
Linia 62. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 63. if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny dane podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 64. dane podkreślnik max znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 65. zamknij nawias klamrowy.
Linia 67. System kropka out kropka println otwórz nawias okrągły slowo podkreślnik fibonacciego otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 68. zamknij nawias klamrowy.
Linia 70. String slowo podkreślnik max znak równości slowo podkreślnik fibonacciego otwórz nawias okrągły dane podkreślnik max zamknij nawias okrągły średnik.
Linia 72. prawy ukośnik prawy ukośnik tablica 100x100 wypełniona zerami.
Linia 73. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy mapa2d znak równości new int otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy otwórz nawias kwadratowy ROZMIAR podkreślnik MAX zamknij nawias kwadratowy średnik.
Linia 75. int otwórz nawias kwadratowy zamknij nawias kwadratowy xy znak równości otwórz nawias klamrowy 0 przecinek 0 zamknij nawias klamrowy średnik.
Linia 76. prawy ukośnik prawy ukośnik 0 minus prawo.
Linia 77. prawy ukośnik prawy ukośnik 1 minus dół.
Linia 78. prawy ukośnik prawy ukośnik 2 minus lewo.
Linia 79. prawy ukośnik prawy ukośnik 3 minus góra.
Linia 80. int kierunek znak równości 0 średnik.
Linia 82. prawy ukośnik prawy ukośnik generuj kształt.
Linia 83. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny slowo podkreślnik max kropka length otwórz nawias okrągły zamknij nawias okrągły średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 84. zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły xy przecinek mapa2d zamknij nawias okrągły średnik.
Linia 85. naprzod otwórz nawias okrągły xy przecinek kierunek zamknij nawias okrągły średnik.
Linia 87. if otwórz nawias okrągły slowo podkreślnik max kropka charAt otwórz nawias okrągły i zamknij nawias okrągły znak równości znak równości apostrof 0 apostrof zamknij nawias okrągły otwórz nawias klamrowy.
Linia 88. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 89. kierunek znak równości obrot podkreślnik lewo otwórz nawias okrągły kierunek zamknij nawias okrągły średnik.
Linia 90. zamknij nawias klamrowy.
Linia 91. else otwórz nawias klamrowy.
Linia 92. kierunek znak równości obrot podkreślnik prawo otwórz nawias okrągły kierunek zamknij nawias okrągły średnik.
Linia 93. zamknij nawias klamrowy.
Linia 94. zamknij nawias klamrowy.
Linia 95. zamknij nawias klamrowy.
Linia 97. prawy ukośnik prawy ukośnik znajdź rzeczywisty rozmiar kształtu.
Linia 98. int x podkreślnik max znak równości 0 przecinek y podkreślnik max znak równości 0 średnik.
Linia 99. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus i zamknij nawias okrągły otwórz nawias klamrowy.
Linia 100. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny ROZMIAR podkreślnik MAX średnik plus plus j zamknij nawias okrągły otwórz nawias klamrowy.
Linia 101. if otwórz nawias okrągły wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły j przecinek i przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 102. if otwórz nawias okrągły j zamknij nawias ostrokątny x podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 103. x podkreślnik max znak równości j średnik.
Linia 104. zamknij nawias klamrowy.
Linia 105. if otwórz nawias okrągły i zamknij nawias ostrokątny y podkreślnik max zamknij nawias okrągły otwórz nawias klamrowy.
Linia 106. y podkreślnik max znak równości i średnik.
Linia 107. zamknij nawias klamrowy.
Linia 108. zamknij nawias klamrowy.
Linia 109. zamknij nawias klamrowy.
Linia 110. zamknij nawias klamrowy.
Linia 112. int rozmiar podkreślnik y znak równości y podkreślnik max plus 1 przecinek rozmiar podkreślnik x znak równości x podkreślnik max plus 1 średnik.
Linia 114. prawy ukośnik prawy ukośnik rysuj kształt.
Linia 115. rysuj podkreślnik mape otwórz nawias okrągły mapa2d przecinek rozmiar podkreślnik x przecinek rozmiar podkreślnik y zamknij nawias okrągły średnik.
Linia 116. zamknij nawias klamrowy.
Linia 117. zamknij nawias klamrowy.
Dla przykładowych danych zawartych w pliku tekstowym, wynik powinien wynieść:
Pobierz poniższy plik. W pierwszej linijce zawiera on liczbę testów n. Każda kolejna linijka zawiera stopień słowa Fibonacciego, które należy wypisać. Napisz program w środowisku programistycznym na swoim komputerze, w którym załadujesz dane z pobranego pliku, wypiszesz odpowiednie słowa Fibonacciego oraz utworzysz fraktal Fibonacciego dla najdłuższego wypisanego słowa Fibonacciego.
R1CoQFj9WESm1
Przykładowe rozwiązanie:
Linia 1. def slowo podkreślnik fibonacciego otwórz nawias okrągły n zamknij nawias okrągły dwukropek.
Linia 2. if n znak równości znak równości 0 dwukropek.
Linia 3. return cudzysłów 0 cudzysłów.
Linia 4. if n znak równości znak równości 1 dwukropek.
Linia 5. return cudzysłów 01 cudzysłów.
Linia 7. return slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus slowo podkreślnik fibonacciego otwórz nawias okrągły n minus 2 zamknij nawias okrągły.
Linia 10. def obrot podkreślnik lewo otwórz nawias okrągły kierunek zamknij nawias okrągły dwukropek.
Linia 11. return otwórz nawias okrągły kierunek plus 3 zamknij nawias okrągły procent 4.
Linia 14. def obrot podkreślnik prawo otwórz nawias okrągły kierunek zamknij nawias okrągły dwukropek.
Linia 15. return otwórz nawias okrągły kierunek plus 1 zamknij nawias okrągły procent 4.
Linia 18. def naprzod otwórz nawias okrągły x przecinek y przecinek kierunek zamknij nawias okrągły dwukropek.
Linia 19. if kierunek znak równości znak równości 0 dwukropek.
Linia 20. return x plus 1 przecinek y.
Linia 21. if kierunek znak równości znak równości 1 dwukropek.
Linia 22. return x przecinek y minus 1.
Linia 23. if kierunek znak równości znak równości 2 dwukropek.
Linia 24. return x minus 1 przecinek y.
Linia 25. return x przecinek y plus 1.
Linia 28. def wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły dwukropek.
Linia 29. return mapa2d otwórz nawias kwadratowy minus y minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy.
Linia 32. def rysuj podkreślnik mape otwórz nawias okrągły mapa2d przecinek x podkreślnik rozmiar przecinek y podkreślnik rozmiar zamknij nawias okrągły dwukropek.
Linia 33. kratka rysuj od góry.
Linia 34. for y in reversed otwórz nawias okrągły range otwórz nawias okrągły y podkreślnik rozmiar zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 35. for x in range otwórz nawias okrągły x podkreślnik rozmiar zamknij nawias okrągły dwukropek.
Linia 36. print otwórz nawias okrągły cudzysłów kratka cudzysłów if wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 else cudzysłów cudzysłów przecinek end znak równości cudzysłów cudzysłów zamknij nawias okrągły.
Linia 37. print otwórz nawias okrągły zamknij nawias okrągły.
Linia 40. def zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły dwukropek.
Linia 41. mapa2d otwórz nawias kwadratowy minus y minus 1 zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy znak równości 1.
Linia 44. n znak równości 4.
Linia 45. dane znak równości otwórz nawias kwadratowy 4 przecinek 3 przecinek 12 przecinek 8 zamknij nawias kwadratowy.
Linia 47. dane podkreślnik max znak równości 0.
Linia 49. for k in dane dwukropek.
Linia 50. if k zamknij nawias ostrokątny dane podkreślnik max dwukropek.
Linia 51. dane podkreślnik max znak równości k.
Linia 53. print otwórz nawias okrągły slowo podkreślnik fibonacciego otwórz nawias okrągły k zamknij nawias okrągły zamknij nawias okrągły.
Linia 55. slowo podkreślnik max znak równości slowo podkreślnik fibonacciego otwórz nawias okrągły dane podkreślnik max zamknij nawias okrągły.
Linia 57. kratka tablica 100x100 wypełniona zerami.
Linia 58. ROZMIAR podkreślnik MAX znak równości 100.
Linia 59. mapa2d znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 60. for i in range otwórz nawias okrągły ROZMIAR podkreślnik MAX zamknij nawias okrągły dwukropek.
Linia 61. mapa2d kropka append otwórz nawias okrągły otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 62. for j in range otwórz nawias okrągły ROZMIAR podkreślnik MAX zamknij nawias okrągły dwukropek.
Linia 63. mapa2d otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka append otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 65. x przecinek y znak równości 0 przecinek 0.
Linia 66. kratka 0 minus prawo.
Linia 67. kratka 1 minus dół.
Linia 68. kratka 2 minus lewo.
Linia 69. kratka 3 minus góra.
Linia 70. kierunek znak równości 0.
Linia 72. kratka generuj kształt.
Linia 73. for i przecinek c in enumerate otwórz nawias okrągły slowo podkreślnik max zamknij nawias okrągły dwukropek.
Linia 74. zaznacz podkreślnik na podkreślnik mapie otwórz nawias okrągły x przecinek y przecinek mapa2d zamknij nawias okrągły.
Linia 75. x przecinek y znak równości naprzod otwórz nawias okrągły x przecinek y przecinek kierunek zamknij nawias okrągły.
Linia 77. if c znak równości znak równości cudzysłów 0 cudzysłów dwukropek.
Linia 78. if i procent 2 znak równości znak równości 0 dwukropek.
Linia 79. kierunek znak równości obrot podkreślnik lewo otwórz nawias okrągły kierunek zamknij nawias okrągły.
Linia 80. else dwukropek.
Linia 81. kierunek znak równości obrot podkreślnik prawo otwórz nawias okrągły kierunek zamknij nawias okrągły.
Linia 83. kratka znajdź rzeczywisty rozmiar kształtu.
Linia 84. x podkreślnik max przecinek y podkreślnik max znak równości 0 przecinek 0.
Linia 85. for i in range otwórz nawias okrągły ROZMIAR podkreślnik MAX zamknij nawias okrągły dwukropek.
Linia 86. for y in range otwórz nawias okrągły ROZMIAR podkreślnik MAX zamknij nawias okrągły dwukropek.
Linia 87. if wartosc podkreślnik mapy podkreślnik na podkreślnik pozycji otwórz nawias okrągły y przecinek i przecinek mapa2d zamknij nawias okrągły znak równości znak równości 1 dwukropek.
Linia 88. if y zamknij nawias ostrokątny x podkreślnik max dwukropek.
Linia 89. x podkreślnik max znak równości y.
Linia 90. if i zamknij nawias ostrokątny y podkreślnik max dwukropek.
Linia 91. y podkreślnik max znak równości i.
Linia 93. rozmiar podkreślnik y znak równości y podkreślnik max plus 1.
Linia 94. rozmiar podkreślnik x znak równości x podkreślnik max plus 1.
Linia 96. kratka rysuj kształt.
Linia 97. rysuj podkreślnik mape otwórz nawias okrągły mapa2d przecinek rozmiar podkreślnik x przecinek rozmiar podkreślnik y zamknij nawias okrągły.
Dla przykładowych danych zawartych w pliku tekstowym, wynik powinien wynieść: