File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ package dynamicProgramming1 ;
2
+
3
+ import java .util .Arrays ;
4
+ import java .util .Scanner ;
5
+
6
+ public class FibonacciNumber {
7
+ /*
8
+ * Memoization = Applying Recursion + Storing somewhere
9
+ * */
10
+ private static int fibonacci (int n , int [] dp ) {
11
+ if (n == 0 || n == 1 )
12
+ return n ;
13
+
14
+ int ans1 , ans2 ;
15
+ if (dp [n - 1 ] == -1 ) {
16
+ ans1 = fibonacci (n - 1 , dp );
17
+ dp [n - 1 ] = ans1 ;
18
+ } else {
19
+ ans1 = dp [n - 1 ];
20
+ }
21
+
22
+ if (dp [n - 2 ] == -1 ) {
23
+ ans2 = fibonacci (n - 2 , dp );
24
+ dp [n - 2 ] = ans2 ;
25
+ } else {
26
+ ans2 = dp [n - 2 ];
27
+ }
28
+
29
+ return ans1 + ans2 ;
30
+ }
31
+
32
+ public static void main (String [] args ) {
33
+ Scanner scan = new Scanner (System .in );
34
+ int n = scan .nextInt ();
35
+ int [] dp = new int [n + 1 ];
36
+ Arrays .fill (dp , -1 ); // Filling arrays element with -1
37
+ int answer = fibonacci (n , dp );
38
+ System .out .println (answer );
39
+ }
40
+ }
You can’t perform that action at this time.
0 commit comments