Pierwszych n elementów sekwencji Fibonacciego


11

Istnieje dobrze znane pytanie , które wymaga krótkiego (najmniej znaków) generatora sekwencji fibonacciego.

Chciałbym wiedzieć, czy ktoś może wygenerować tylko pierwsze N ​​elementów sekwencji Fibonacciego w bardzo małej przestrzeni. Próbuję to zrobić w Pythonie, ale interesuje mnie krótka odpowiedź w dowolnym języku. Funkcja F (N) generuje pierwsze N ​​elementów sekwencji, albo zwraca je jako zwrot funkcji, albo drukuje.

Co ciekawe wydaje się, że odpowiedzi na kod-golf zaczynają się 1 1 2od 0 1 1 2. Czy jest to konwencja w golfa kodowym lub ogólnie w programowaniu? (Wikipedia mówi, że sekwencja Fibonacciego zaczyna się od zera).

Przykład Python (pierwsze 5 elementów):

def f(i,j,n):
    if n>0:
        print i;
        f(j,i+j,n-1)
f(1,1,5)

1
Myślę, że jest to zbyt podobne do powiązanego pytania. Większość dostępnych tam rozwiązań można łatwo zmodyfikować, aby obsłużyć przypadek pierwszemu.
hammar

3
Wszędzie, gdzie widziałem, przypadki podstawowe są zdefiniowane jako F_0 = 0, F_1 = 1lub równorzędne F_1 = 1, F_2 = 1. Różnica polega na tym, czy chcesz rozpocząć sekwencję od indeksu 0 (częściej w programowaniu) czy 1 (częściej w matematyce).
hammar

1
A definiowanie F_0 = 0, F_1 = 1ma określoną zaletę w prostocie dzięki reprezentacji macierzy [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]].
Peter Taylor

1
@Peter: Teraz to dobry powód, aby preferować jeden do drugiego (ja długo preferowane 0, 1 na estetycznych powodów, ale nie wierzę ci się naciskając same w sobie).
dmckee --- były moderator kociak

1
Zdaję sobie sprawę, że w tym momencie jest to dość stare wyzwanie, ale pamiętaj, że zaakceptowałeś odpowiedź, która nie jest najkrótsza. Ponieważ są to zawody w golfa kodowym, najkrótszą odpowiedzią powinna być ta oznaczona jako zaakceptowana.
Alex A.

Odpowiedzi:


39

do

Nie przejmowałem się liczeniem, ale oto zabawny przykład:

f(n){return n<4?1:f(--n)+f(--n);}
main(a,b){for(scanf("%d",&b);a++<=b;printf("%d ",f(a)));}

Dowód to działa.


Jestem z tego dość dumny: nudziłem się, więc przestawiłem swój kod (z kilkoma małymi dodatkami), aby każdy wiersz reprezentował wartość w sekwencji Fibonacciego.

                         #                                // 1
                         f                                // 1
                         //                               // 2
                        (n)                               // 3
                       {/**/                              // 5
                      return n                            // 8
                    <2 ? 1:f(--n)                         // 13
                +f(--n); } main(a, b)                     // 21
          {a = 0, b = 0;scanf("%d",&b); for(              // 34
;a < b; a+=1) { int res = f(a); printf("%d ", res); } }   // 55

Dowód to działa.


Miły. 90 znaków (bez nowej linii). Zapisz 2 bajty: a++<=b-> a++-bi return--n<3?1:f(n)+f(n-1). Plus możesz tego uniknąć, scanfjeśli potrzebujesz n argc.
ugoren

Kocham to! Jest to świetny przykład sytuacji, w której niezdefiniowane zachowanie uporządkowania dwóch wystąpień --ntego samego wyrażenia jest nieistotne. Znakomity!
Todd Lehman

Nawiasem mówiąc, myślę, że twoja 4powinna być 3. Jak obecnie napisano z <4, wyprodukowana sekwencja to 1, 1, 1, 2, 3, 5, 8 ... To o jeden za dużo jeden.
Todd Lehman

Ponadto, jeśli chcesz poprawnie obsługiwać element zerowy sekwencji, możesz dodać 2 znaki i zmienić kod nareturn n<3?n>0:f(--n)+f(--n);
Todd Lehman

6

Haskell (26)

Zaskakujące jest to tylko jedno postać dłuższa niż rozwiązanie J.

f = („weź”)
s = 0: scanl (+) 1s

Ogoliłem kilka postaci:

  1. Wykorzystanie takejako operator binarny;
  2. Używanie scanlzamiast gadatliwego zipWith.

Dosłownie zajęło mi około pół godziny, aby zrozumieć, co się tutaj dzieje, i sjest tak elegancki, że nie wiem, jak ktokolwiek pomyślałby o takim rozwiązaniu! Nie wiedziałem, że możesz użyć sponownie podczas definiowania s. (Nadal jestem początkującym =)
flawr

5

Oto jedno-liniowy Python. Wykorzystuje zmiennoprzecinkowe, więc mogą istnieć takie, ndla których nie jest już dokładny.

F=lambda n:' '.join('%d'%(((1+5**.5)/2)**i/5**.5+.5)for i in range(n))

F(n)zwraca ciąg zawierający pierwsze nliczby Fibonacciego oddzielone spacjami.


Myślałem o zrobieniu tego, ale pomyślałem, że to będzie za długie. Nie myślałem o użyciu podłogi. Bardzo dobrze.
Kris Harper

Ach, wzór Bineta. Użyłem go również i jest dokładny, przynajmniej do 59. liczby Fibonacciego, jeśli policzysz 0 jako pierwszą. Potem liczby stają się zbyt duże i zaczyna używać wykładników.
elssar

70 znaków, 1 linia, aby zdefiniować funkcję. + 4 + crlf, aby wywołać. Całkiem dobre!
Warren P

5

GolfScript, 16 znaków

~0 1@{.2$+}*;;]`

Przykładowe dane wyjściowe:

$ ruby golfscript.rb ~/Code/golf/fib.gs <<< "12"
[0 1 1 2 3 5 8 13 21 34 55 89]

4

Perl, 50 znaków

sub f{($a,$b,$c)=@_;$c--&&say($a)&&f($b,$a+$b,$c)}

4

Scala 71:

def f(c:Int,a:Int=0,b:Int=1):Unit={println(a);if(c>0)f(c-1,b,a+b)};f(9)

odciski

0
1
1
2
3
5
8
13
21
34

Fajne. Jeszcze nawet nie grałem ze Scalą. Spróbuję tego dziś wieczorem w domu.
Warren P

3

Perl, 29 28 bajtów

perl -E'say$b+=$;=$b-$;for-pop..--$;' 8
1
1
2
3
5
8
13
21

Wyjaśnienie

Jest to oparte na klasycznej $b += $a = $b-$arekurencji, która działa w następujący sposób:

  • Na początku każdej pętli $azawiera F(n-2)i $bzawieraF(n)
  • Po $a = $b-$a $azawieraF(n-1)
  • Po $b += $a $bzawieraF(n+1)

Problemem jest tutaj inicjalizacja. Klasyczny sposób jest, $b += $a = $b-$a || 1ale potem sekwencja idzie1 2 3 5 ...

Rozszerzając sekwencję fibonacciego w lewo:

... 5 -3 2 -1 1 0 1 1 2 3 5 ...

widzisz, że właściwym punktem wyjścia jest $a = -1i $b = 0. Inicjalizację $ a można połączyć z konfiguracją pętli

Na koniec zastąp $aprzez, $;aby pozbyć się miejsca przedfor


2

Mogę podać dwuliniowe rozwiązanie Python. To zwróci je jako listę.

f = lambda n: 1 if n < 2 else f(n-1) + f(n-2)
g = lambda m: map(f, range(0,m))

print g(5)

Możesz je wydrukować, dodając kolejną mapę, aby utworzyć ciągi, a następnie dodając złączenie, ale to po prostu wydaje mi się niepotrzebne.

Niestety nie wiem, jak włożyć rekurencyjną lambdę map, więc utknąłem na dwóch liniach.


Po co to zwraca g(100)? ;)
Pan Llama,

@GigaWatt Heh, OP nigdy nie powiedział, że to musi być rozsądne. Czy asymptotyczny czas działania jest podobny do O (n (1.62) ^ n)?
Kris Harper

Oto jeden ze sposobów, w jaki możesz to zrobić. Zauważ, że f(n)ze n<=0zwracanymi liczbami całkowitymi i n>0listami f = lambda n: map(f, (-x for x in range(0, n))) if n > 0 else -n if n > -2 else f(n+1) + f(n+2)
zwrotnymi

Nawiasem mówiąc, przegapiłeś pierwszy 0w swojej odpowiedzi. Zmiana fna powrót n if n < 2to jedno obejście. :)
Dillon Cower

@DC Podoba mi się twoje rozwiązanie. Dość kreatywny. Tak, zacząłem mój z 1, 1, bo tak zawsze się tego nauczyłem. Uznałem, że zmiana jest łatwa.
Kris Harper

2

Python (78 znaków)

Użyłem wzoru Bineta do obliczenia liczb Fibonacciego -

[(1 + sqrt (5)) ^ n- (1-sqrt (5) ^ n] / [(2 ^ n) sqrt (5)]

Niektóre inne odpowiedzi tutaj nie są tak małe, ale chłopcze, jest szybki

n=input()
i=1
x=5**0.5
while i<=n:
    print ((1+x)**i-(1-x)**i)/((2**i)*x)
    i+=1

1
Python (12 znaków): print"11235":)
Joel Cornett

Możesz ogolić 2 znaki, pozbywając się nawiasów 2**i. **mają wyższy priorytet niż*
Joel Cornett

Drugi termin w formule bineta zaczyna się od małego i staje się coraz mniejszy. Możesz całkowicie go pominąć i po prostu zaokrąglić wynik pierwszego terminu do najbliższej liczby całkowitej (lub dodać 0,5 i zaokrąglić w dół)
Ton Hospel

2

Schemat

Jest to zoptymalizowane za pomocą rekurencji ogona:

(define (fib n)
  (let fib ([n n] [a 0] [b 1])
    (if (zero? n) (list a)
        (cons a (fib (- n 1) b (+ a b))))))


2

J, 25 znaków

Zdaję sobie sprawę, że rozwiązania J prawdopodobnie nie są tym, czego szukasz, ale oto jedno z nich. :-)

0 1(],+/&(_2&{.))@[&0~2-~

Stosowanie:

    0 1(],+/&(_2&{.))@[&0~2-~ 6
0 1 1 2 3 5
    0 1(],+/&(_2&{.))@[&0~2-~ 10
0 1 1 2 3 5 8 13 21 34

Jak to działa:

Zaczynając od prawej (ponieważ programy J są odczytywane od prawej do lewej),

2-~ 6~Operatora odwraca argument czasownika więc jest taka sama, jak6-2

Ignorując na razie sekcję w nawiasach, 0 1(...)@[&0~ xbierze czasownik w nawiasach i wykonuje go xrazy, używając listy 0 1jako danych wejściowych - ~ponownie odwraca tutaj argumenty, dając x (...)@[&0 ] 0 1, co oznacza, że ​​mogę zachować dane wejściowe na końcu funkcji.

W nawiasie jest widelec ],+/&(_2&{.), który składa się z trzech czasowników - ], ,i +/&(_2&{.).

Rozwidlenie przyjmuje trzy czasowniki a b ci używa ich w następujący sposób: (x a y) b (x c y)gdzie xi ysą argumentami rozwidlenia. Jest ,to czasownik środkowy w tym widelcu i łączy wyniki x ] yi x +/&(_2&{.) yrazem.

]zwraca niezmieniony lewy argument, więc x ] yocenia na x.

+/&(_2&{.)pobiera dwa ostatnie elementy z podanej listy (_2&{.)- w tym przypadku 0 1- a następnie dodaje je do siebie +/(po &prostu działają jak klej).

Gdy czasownik zadziała, a wynik zostanie przekazany do następnego uruchomienia, generując sekwencję.


2

TI-Basic, 43 znaki

:1→Y:0→X
:For(N,1,N
:Disp X
:Y→Z
:X+Y→Y
:Z→X
:End

Kod ten można bezpośrednio wstawić do programu głównego lub przekształcić w osobny program, do którego odwołuje się pierwszy.


To jest pierwsze rozwiązanie TI-BASIC, jakie widziałem tutaj, ale nie przeze mnie :) +1
Timtech

Pamiętaj też, że dla innych osób nowe wiersze nie są tutaj liczone, ponieważ można je usunąć.
Timtech,

Właśnie dostałem kalkulator klawiatury TI-92-wielki-gigant-qwerty. Dzięki za to.
Warren P

2

APL (33)

{⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}

Stosowanie:

   {⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}7
0 1 1 2 3 5 8

Czy znak pudełkowy ⎕ jest częścią APL lub brakującym glifem?
Warren P

@WarrenP: Jeśli masz na myśli czwartą postać z lewej strony, nazywa się to „quadem” i tak powinno wyglądać. Powinno być tylko jedno pudełko.
marinus


1

PowerShell - 35 znaków

Program PowerShell akceptuje wprowadzanie potokowe , więc jestem przekonany, że n |in n | <mycode>nie powinno być sprzeczne z moimi obliczeniami, ale jest tylko częścią inicjowania „funkcji” w języku.

Pierwsze rozwiązanie zakłada, że ​​zaczynamy od 0:

%{for($2=1;$_--){($2=($1+=$2)-$2)}}

Drugie rozwiązanie zakłada, że ​​możemy zacząć od 1:

%{for($2=1;$_--){($1=($2+=$1)-$1)}}

Przykładowe wywołanie: 5 | %{for($2=1;$_--){($1=($2+=$1)-$1)}}

Wydajność:

1
1
2
3
5

Co ciekawe, próby uniknięcia napowietrznej na for()pętli spowodowały w tym samym liczba znaków: %{$2=1;iex('($1=($2+=$1)-$1);'*$_)}.


1

Python, 43 znaki

Oto trzy zasadniczo różne jedno-linijki, które nie używają formuły Bineta.

f=lambda n:reduce(lambda(r,a,b),c:(r+[b],a+b,a),'.'*n,([],1,0))[0]
f=lambda n:map(lambda x:x.append(x[-1]+x[-2])or x,[[0,1]]*n)[0]
def f(n):a=0;b=1;exec'print a;a,b=b,a+b;'*n

Nigdy reducetak bardzo nie wykorzystywałem .


1
+1 za reducenadużycie
Warren P

1

dc, 32 znaki:

To faktycznie zawsze pokazuje dwa pierwsze 1, więc funkcja działa tylko zgodnie z oczekiwaniami dla N> = 2 .

?2-sn1df[dsa+plarln1-dsn0<q]dsqx

C, 75 znaków:

Nie tak fajna, jak zaakceptowana odpowiedź, ale krótsza i znacznie szybsza:

main(n,t,j,i){j=0,i=scanf("%d",&n);while(n--)t=i,i=j,printf("%d\n",j+=t);}
Dodatkowy:

CL, 64 znaki:

Jedna z moich najczęściej używanych zakładek w tym semestrze ma interesujący przykład, który jest krótszy niż wiele innych tutaj, i jest to tylko proste wywołanie loopmakra - w zasadzie tylko jedno zdanie! Usuwałem go z całej białej przestrzeni, jaką mogłem:

(loop repeat n for x = 0 then y and y = 1 then(+ x y)collect y)

Dość krótki, miły i czytelny! Aby odczytać dane wejściowe n (w tym otaczające białe spacje) można zastąpić (read), dodając 3 znaki.


Czy ... mainbierze cztery argumenty?
kot

1
To zajmuje tyle, ile dajesz. W tym przypadku po prostu (ab) służy do zdefiniowania kilku zmiennych, które zostaną użyte później :)
daniero

1

FAŁSZ, 28 bajtów

0 1- 1 10[$][@@$@+$." "@1-]#

Możesz wygenerować -1 używając 1_zamiast0 1 -
12Me21

1

Python 2, 38 bajtów

Ulepszenie wcześniej opublikowanego rozwiązania:

a=b=1
exec'print a;a,b=b,a+b;'*input()

Używa execi mnożenia ciągów, aby uniknąć pętli.

Python 3, 46 bajtów

Nie tak wydajne w Pythonie 3:

a=b=1
exec('print(a);a,b=b,a+b;'*int(input()))

Przechodząc do Python 2, możesz zapisać 9 bajtów: Wypróbuj online! Prawdopodobnie możesz dodać wersję Python 2 do swojej odpowiedzi.
Stephen

@Stephen Dobra uwaga! Zaktualizowano
Russell Schwartz,

0

C99, 58 znaków

Poniższa funkcja wypełnia tablicę liczb całkowitych pierwszymi nwartościami z sekwencji Fibonacciego zaczynającymi się od 0.

void f(int*a,int n){for(int p=0,q=1;n--;q+=*a++)*a=p,p=q;}

Test uprzęży, przyjmując njako argument wiersza poleceń:

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
     int n = (argc > 1) ? atoi(argv[1]) : 1;
     int a[n];
     f(a, n);
     for (int i = 0; i < n; ++i)
          printf("%d\n", a[i]);
}

0

CoffeeScript, 48

f=(n,i=1,j=1)->(console.log i;f n-1,j,i+j)if n>0

65 w js:

function f(n,i,j){if(n>0)console.log(i),f(n-1,(j=j||1),(i||1)+j)}

0

PHP, 87

function f($n,$a=array(0,1)){echo' '.$a[0];$n>0?f(--$n,array($a[1],array_sum($a))):'';}

Używa array_sumfunkcji rekurencyjnej do generowania serii.

Na przykład:

 $ php5 fibo.php 9
 0 1 1 2 3 5 8 13 21 34 

0

F #, 123

let f n = Seq.unfold(fun (i,j)->Some(i,(j,i+j)))(0,1)|>Seq.take n
f 5|>Seq.iter(fun x->printfn "%i" x)

0

Scala, 65 znaków

(Seq(1,0)/:(3 to 9)){(s,_)=>s.take(2).sum+:s}.sorted map println

Wyświetla na przykład pierwsze 9 liczb Fibonacciego. Aby wersja była bardziej użyteczna, biorąc sekwencję z danych wejściowych konsoli, wymagane jest 70 znaków:

(Seq(1,0)/:(3 to readInt)){(s,_)=>s.take(2).sum+:s}.sorted map println

Uwaga: użycie zakresu ogranicza to do wartości Int.


0

Pytanie 24

f:{{x,sum -2#x}/[x;0 1]}

Pierwsze n liczb Fibonacciego


0

Lua, 85 bajtów

Uczę się Lua, więc chciałbym dodać ten język do puli.

function f(x)
    return (x<3) and 1 or f(x-1)+f(x-2)
end
for i=1,io.read() do
    print(f(i))
end

a całość zajęła 85 znaków, a parametr jako argument wiersza poleceń. Kolejną zaletą jest to, że jest łatwy do odczytania.


0

FAŁSZ, 20 znaków

^1@[1-$][@2ø+$.\9,]#

Dane wejściowe powinny znajdować się na stosie przed uruchomieniem tego.


0

Pyt , 3 bajty

ř⁻Ḟ

Wypróbuj online!

ř tworzy tablicę [1, 2, 3, ..., x]
⁻ Zmniejsza każdy element raz (ponieważ Ḟ jest indeksowane 0)
Ḟ dla każdego elementu w x konwertuje go na ekwiwalent Fibonacciego


0

kod maszynowy x86 - 379 bajtów

Wersja z nagłówkami ELF o rozmiarze 484 bajtów:

00000000: 7f45 4c46 0101 0100 0000 0000 0000 0000  .ELF............
00000010: 0200 0300 0100 0000 c080 0408 3400 0000  ............4...
00000020: 0000 0000 0000 0000 3400 2000 0200 2800  ........4. ...(.
00000030: 0000 0000 0100 0000 0000 0000 0080 0408  ................
00000040: 0000 0000 e401 0000 0010 0000 0500 0000  ................
00000050: 0010 0000 0100 0000 0000 0000 0090 0408  ................
00000060: 0000 0000 0000 0000 0000 1000 0600 0000  ................
00000070: 0010 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 51b9 0090 0408 8801 31c0 ba01 0000 00eb  Q.......1.......
00000090: 0351 89c1 31c0 89c3 43b0 04cd 8031 c099  .Q..1...C....1..
000000a0: 4259 c300 0000 0000 0000 0000 0000 0000  BY..............
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 31c0 9942 b903 9004 08c6 4101 0ac6 4102  1..B......A...A.
000000d0: 01c6 4103 013a 7103 0f84 ff00 0000 3a71  ..A..:q.......:q
000000e0: 0374 2680 4103 050f b641 036b c008 0041  .t&.A....A.k...A
000000f0: 048a 4104 e887 ffff ff80 6904 30c6 4103  ..A.......i.0.A.
00000100: 0183 e903 3a71 0375 da8a 4104 e86f ffff  ....:q.u..A..o..
00000110: ff3a 7106 0f84 ba00 0000 0fb6 4105 8841  .:q.........A..A
00000120: 060f b641 0788 4105 0fb6 4107 0041 06c6  ...A..A...A..A..
00000130: 4107 003a 7106 0f84 8800 0000 c641 0701  A..:q........A..
00000140: fe49 063a 7106 0f84 7800 0000 c641 0702  .I.:q...x....A..
00000150: fe49 063a 7106 0f84 6800 0000 c641 0703  .I.:q...h....A..
00000160: fe49 063a 7106 0f84 5800 0000 c641 0704  .I.:q...X....A..
00000170: fe49 063a 7106 744c c641 0705 fe49 063a  .I.:q.tL.A...I.:
00000180: 7106 7440 c641 0706 fe49 063a 7106 7434  q.t@.A...I.:q.t4
00000190: c641 0707 fe49 063a 7106 7428 c641 0708  .A...I.:q.t(.A..
000001a0: fe49 063a 7106 741c c641 0709 fe49 063a  .I.:q.t..A...I.:
000001b0: 7106 7410 fe41 08fe 4109 fe49 060f b641  q.t..A..A..I...A
000001c0: 0688 4107 c641 0601 83c1 033a 7106 0f85  ..A..A.....:q...
000001d0: 46ff ffff 3a71 030f 8501 ffff ffb3 0031  F...:q.........1
000001e0: c040 cd80                                .@..

Wersja bez nagłówka (do oceny):

00000000: 67c6 4101 0a67 c641 0201 67c6 4103 0167  g.A..g.A..g.A..g
00000010: 3a71 030f 842a 0167 3a71 0374 2e67 8041  :q...*.g:q.t.g.A
00000020: 0305 6667 0fb6 4103 666b c008 6700 4104  ..fg..A.fk..g.A.
00000030: 678a 4104 e80d 0167 8069 0430 67c6 4103  g.A....g.i.0g.A.
00000040: 0166 83e9 0367 3a71 0375 d267 8a41 04e8  .f...g:q.u.g.A..
00000050: f200 673a 7106 0f84 df00 6667 0fb6 4105  ..g:q.....fg..A.
00000060: 6788 4106 6667 0fb6 4107 6788 4105 6667  g.A.fg..A.g.A.fg
00000070: 0fb6 4107 6700 4106 67c6 4107 0067 3a71  ..A.g.A.g.A..g:q
00000080: 060f 84a3 0067 c641 0701 67fe 4906 673a  .....g.A..g.I.g:
00000090: 7106 0f84 9200 67c6 4107 0267 fe49 0667  q.....g.A..g.I.g
000000a0: 3a71 060f 8481 0067 c641 0703 67fe 4906  :q.....g.A..g.I.
000000b0: 673a 7106 0f84 7000 67c6 4107 0467 fe49  g:q...p.g.A..g.I
000000c0: 0667 3a71 0674 6167 c641 0705 67fe 4906  .g:q.tag.A..g.I.
000000d0: 673a 7106 7452 67c6 4107 0667 fe49 0667  g:q.tRg.A..g.I.g
000000e0: 3a71 0674 4367 c641 0707 67fe 4906 673a  :q.tCg.A..g.I.g:
000000f0: 7106 7434 67c6 4107 0867 fe49 0667 3a71  q.t4g.A..g.I.g:q
00000100: 0674 2567 c641 0709 67fe 4906 673a 7106  .t%g.A..g.I.g:q.
00000110: 7416 67fe 4108 67fe 4109 67fe 4906 6667  t.g.A.g.A.g.I.fg
00000120: 0fb6 4106 6788 4107 67c6 4106 0166 83c1  ..A.g.A.g.A..f..
00000130: 0367 3a71 060f 8521 ff67 3a71 030f 85d6  .g:q...!.g:q....
00000140: fe00 0000 6651 66b9 7801 0000 6788 0166  ....fQf.x...g..f
00000150: 31c0 66ba 0100 0000 eb05 6651 6689 c166  1.f.......fQf..f
00000160: 31c0 6689 c366 43b0 04cd 8066 31c0 6699  1.f..fC....f1.f.
00000170: 6642 6659 c300 0000 0000 00              fBfY.......

Oblicza (ewentualnie) liczby Fibonacciego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.