Skip to content

Commit edf9dd2

Browse files
dynamic_programming, fibonacci sequence.
1 parent fb8d4a5 commit edf9dd2

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

dynamic_programming/fibonacci.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
class Fibonacci:
2+
3+
def __init__(self, N=None):
4+
if N:
5+
self.fib_array = [0] * (N + 1)
6+
self.fib_array[0] = 0
7+
self.fib_array[1] = 1
8+
for i in range(2, N + 1):
9+
self.fib_array[i] = self.fib_array[
10+
i - 1] + self.fib_array[i - 2]
11+
else:
12+
self.fib_array = [None] * (N + 1)
13+
14+
def get(self, sequence_no=None):
15+
if sequence_no:
16+
if sequence_no < len(self.fib_array):
17+
return print(self.fib_array[:sequence_no])
18+
else:
19+
print("Out of bound.")
20+
else:
21+
print("Please specify the a value")
22+
23+
24+
if __name__ == '__main__':
25+
import sys
26+
27+
print("\n********* Fibonacci Series Using Dynamic Programming ************\n")
28+
# For python 2.x and 3.x compatibility: 3.x has not raw_input builtin
29+
# otherwise 2.x's input builtin function is too "smart"
30+
if sys.version_info.major < 3:
31+
input_function = raw_input
32+
else:
33+
input_function = input
34+
35+
print("\n Enter the upper limit for the fibonacci sequence: ", end="")
36+
try:
37+
N = eval(input())
38+
fib = Fibonacci(N)
39+
print(
40+
"\n********* Enter different values to get the corresponding fibonacci sequence, enter any negative number to exit. ************\n")
41+
while True:
42+
print("Enter value: ", end=" ")
43+
i = eval(input())
44+
if i < 0:
45+
print("\n********* Good Bye!! ************\n")
46+
break
47+
fib.get(i)
48+
except NameError:
49+
print("\nInvalid input, please try again.")
50+
except NameError:
51+
print("\n********* Invalid input, good bye!! ************\n")

0 commit comments

Comments
 (0)