Skip to content

Commit

Permalink
fibonacci w python3 + uzupełnienia
Browse files Browse the repository at this point in the history
  • Loading branch information
lo1cgsan committed Nov 27, 2017
1 parent e968914 commit f06cc26
Showing 1 changed file with 32 additions and 14 deletions.
46 changes: 32 additions & 14 deletions docs/python/algorytmy/fibonacci.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Ciąg Fibonacciego
# <eCG>


def fib_iter0(n):
"""Funkcja zwraca n-ty wyraz ciągu Fibonacciego
F(0) = 0
F(1) = 1
F(n) = F(n-2) + F(n-1) dla n > 1
"""
if n == 0:
return 0
elif n == 1:
return 1
a, b = (0, 1)
for i in range(1, n - 1):
a, b = b, a + b
return b


def fib_iter1(n): # definicja funkcji
"""
Funkcja drukuje kolejne wyrazy ciągu Fibonacciego
aż do wyrazu n-tego, który zwraca.
Wersja iteracyjna z pętlą while.
"""
pwyrazy = (0, 1) # dwa pierwsze wyrazy ciągu zapisane w tupli
a, b = pwyrazy # przypisanie wielokrotne, rozpakowanie tupli
print a,
# dwa pierwsze wyrazy ciągu zapisane w tupli
a, b = (0, 1) # przypisanie wielokrotne, rozpakowanie tupli
print(a, end=' ')
while n > 1:
print b,
print(b, end=' ')
a, b = b, a + b # przypisanie wielokrotne
n -= 1

Expand All @@ -27,14 +43,14 @@ def fib_iter2(n):
Wersja iteracyjna z pętlą for.
"""
a, b = 0, 1
print "wyraz", 1, a
print "wyraz", 2, b
print("wyraz", 1, a)
print("wyraz", 2, b)
for i in range(1, n - 1):
# wynik = a + b
a, b = b, a + b
print "wyraz", i + 2, b
print("wyraz", i + 2, b)

print "" # wiersz odstępu
print() # wiersz odstępu
return b


Expand All @@ -51,13 +67,15 @@ def fib_rek(n):


def main(args):
n = int(raw_input("Podaj nr wyrazu: "))
n = int(input("Podaj nr wyrazu: "))
print("Wyraz {:d}: {:d}".format(n, fib_iter0(n)))
print("=" * 40)
fib_iter1(n)
print ""
print "=" * 40
print()
print("=" * 40)
fib_iter2(n)
print "=" * 40
print fib_rek(n - 1)
print("=" * 40)
print(fib_rek(n - 1))
return 0


Expand Down

0 comments on commit f06cc26

Please sign in to comment.