forked from namishkhanna/hacktoberfest2020
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFibonacciLastDigit.cpp
More file actions
40 lines (36 loc) · 892 Bytes
/
FibonacciLastDigit.cpp
File metadata and controls
40 lines (36 loc) · 892 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
40
// Here the last digit of a large fibonacci number is required.
// There's an observation that the number in the fibonacci series repeat their last digit after 60 numbers.
#include<iostream>
#include<vector>
using namespace std;
long long fibonacciNoLastDigit(long long N) {
long long i;
if(N == 0) {
return 0;
}
if(N <= 60) {
long long arr[N];
arr[0] = 0;
arr[1] = 1;
for (i = 2; i <= N; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[N] % 10;
}
else {
long long arr[60];
arr[0] = 0;
arr[1] = 1;
for (i = 2; i <= 60; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
long long dif = N % 60;
return arr[dif] % 10;
}
}
int main() {
long long N;
cin >> N;
cout<<fibonacciNoLastDigit(N)<<endl;
return 0;
}