-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfibonacci_last_digit.py
More file actions
39 lines (33 loc) · 886 Bytes
/
fibonacci_last_digit.py
File metadata and controls
39 lines (33 loc) · 886 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Uses python3
import sys
# import random
#
# def get_fibonacci_last_digit_naive(n):
# if n <= 1:
# return n
#
# previous = 0
# current = 1
#
# for _ in range(n - 1):
# previous, current = current, previous + current
#
# return current % 10
fib_last_digit_list = []
fib_last_digit_list.append(0)
fib_last_digit_list.append(1)
last_accessed_fib = 1
def get_fibonacci_last_digit_adv(n):
global last_accessed_fib
if n<=last_accessed_fib:
return fib_last_digit_list[n]
else:
for i in range(last_accessed_fib+1,n+1):
fib_last_digit_list.append((fib_last_digit_list[i-1]+fib_last_digit_list[i-2])%10)
last_accessed_fib = n
return fib_last_digit_list[n]
if __name__ == '__main__':
input = sys.stdin.read()
# input = input()
n = int(input)
print(get_fibonacci_last_digit_adv(n))