blob: 078315427f4b7cc72631579c8143e3ae6ee34f23 (
plain)
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
|
import java.util.Scanner;
public class LastDigitOfFibSum {
final static int FIB_PISANO_PERIOD_FOR_TEN = 60;
public static int getFibNModM(long n) {
long r = n % FIB_PISANO_PERIOD_FOR_TEN;
if (r == 0)
return 0;
int firstN = 0;
int secondN = 1;
int tempHolder = 1;
for (int i = 1; i < r; i++) {
tempHolder = (firstN + secondN) % 10;
firstN = secondN;
secondN = tempHolder;
}
return secondN;
}
public static int getLastDigit(long n) {
if (n <= 1)
return (int) n;
int result = getFibNModM(n + 2);
if (result == 0)
return 9;
else
return result - 1;
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
System.out.println(getLastDigit(n));
}
}
|