-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path02_fibonacci.py
32 lines (24 loc) · 1.39 KB
/
02_fibonacci.py
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
Задача на программирование: последняя цифра большого числа Фибоначчи
Дано число 1≤n≤10^7, необходимо найти последнюю цифру n-го числа Фибоначчи.
Как мы помним, числа Фибоначчи растут очень быстро, поэтому
при их вычислении нужно быть аккуратным с переполнением.
В данной задаче, впрочем, этой проблемы можно избежать,
поскольку нас интересует только последняя цифра числа
Фибоначчи: если 0≤a,b≤9 — последние цифры чисел Fi и Fi+1
соответственно, то (a+b)mod10 — последняя цифра числа Fi+2.
Немного теории : https://ru.wikibooks.org/wiki/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%B5%D0%BB_%D0%A4%D0%B8%D0%B1%D0%BE%D0%BD%D0%B0%D1%87%D1%87%D0%B8
Сайт для демонстрации чисел Фибоначчи: http://php.bubble.ro/fibonacci/
Sample Input:
2886
Sample Output:
8
# put your python code here
n = int(input())
k=0
T = [0,1]
for i in range(2,n):
T.append((T[i-1]+T[i-2])%10)
k = k+1
if (T[i]==1) and (T[i-1]==0):
break
print(T[(n%k)])