Skip to content

Commit cd9dd9f

Browse files
realDuYuanChaogithub-actions
and
github-actions
authored
add fibonacci (#35)
* add fibonacci * Formatted with psf/black Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
1 parent e8fbb1b commit cd9dd9f

File tree

3 files changed

+99
-0
lines changed

3 files changed

+99
-0
lines changed

maths/fibonacci.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
def fibonacci(number: int) -> int:
2+
"""
3+
>>> fibonacci(0)
4+
0
5+
>>> fibonacci(1)
6+
1
7+
>>> fibonacci(2)
8+
1
9+
>>> fibonacci(3)
10+
2
11+
>>> fibonacci(4)
12+
3
13+
>>> fibonacci(5)
14+
5
15+
>>> fibonacci(6)
16+
8
17+
>>> fibonacci(7)
18+
13
19+
>>> fibonacci(8)
20+
21
21+
"""
22+
first_item = 0
23+
second_item = 1
24+
for i in range(0, number):
25+
temp = first_item + second_item
26+
first_item = second_item
27+
second_item = temp
28+
return first_item
29+
30+
31+
if __name__ == "__main__":
32+
from doctest import testmod
33+
34+
testmod()

maths/fibonacci_recursion.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
def fibonacci(number: int) -> int:
2+
"""
3+
>>> fibonacci(0)
4+
0
5+
>>> fibonacci(1)
6+
1
7+
>>> fibonacci(2)
8+
1
9+
>>> fibonacci(3)
10+
2
11+
>>> fibonacci(4)
12+
3
13+
>>> fibonacci(5)
14+
5
15+
>>> fibonacci(6)
16+
8
17+
>>> fibonacci(7)
18+
13
19+
>>> fibonacci(8)
20+
21
21+
"""
22+
return (
23+
number
24+
if number == 0 or number == 1
25+
else fibonacci(number - 1) + fibonacci(number - 2)
26+
)
27+
28+
29+
if __name__ == "__main__":
30+
from doctest import testmod
31+
32+
testmod()

maths/fibonacci_with_list.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
def fibonacci(number: int) -> int:
2+
"""
3+
>>> fibonacci(0)
4+
0
5+
>>> fibonacci(1)
6+
1
7+
>>> fibonacci(2)
8+
1
9+
>>> fibonacci(3)
10+
2
11+
>>> fibonacci(4)
12+
3
13+
>>> fibonacci(5)
14+
5
15+
>>> fibonacci(6)
16+
8
17+
>>> fibonacci(7)
18+
13
19+
>>> fibonacci(8)
20+
21
21+
"""
22+
fibs = [0] * (number + 2)
23+
fibs[0] = 0
24+
fibs[1] = 1
25+
for i in range(2, number + 1):
26+
fibs[i] = fibs[i - 1] + fibs[i - 2]
27+
return fibs[number]
28+
29+
30+
if __name__ == "__main__":
31+
from doctest import testmod
32+
33+
testmod()

0 commit comments

Comments
 (0)