summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java
diff options
context:
space:
mode:
Diffstat (limited to 'AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java')
-rw-r--r--AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java b/AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java
new file mode 100644
index 0000000..94217ed
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxJava/sources/Fibonacci.java
@@ -0,0 +1,30 @@
+import java.util.Scanner;
+
+public class Fibonacci {
+ public static long fib_naive(int n) {
+ if (n <= 1)
+ return n;
+
+ return fib_naive(n - 1) + fib_naive(n - 2);
+ }
+
+ public static long fib_optimized1(int i) {
+ if (i <= 1)
+ return (long) i;
+ final long[] fibArray = new long[i+1];
+ fibArray[0] = 0;
+ fibArray[1] = 1;
+ for (int j = 2; j < i+1; j++) {
+ fibArray[j] = fibArray[j - 1] + fibArray[j - 2];
+ }
+ return fibArray[i];
+ }
+
+ public static void main(String args[]) {
+ Scanner in = new Scanner(System.in);
+ int n = in.nextInt();
+
+ System.out.println(fib_optimized1(n));
+ }
+
+} \ No newline at end of file