Advertisement
IrinaIgnatova

Fibonacci with Stack

Oct 1st, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.28 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. import java.util.*;
  8.  
  9. public class Main {
  10.  
  11.  
  12.     public static void main(String[] args) throws IOException {
  13.         // Scanner scanner = new Scanner(System.in);
  14.  
  15.  
  16.         var reader = new BufferedReader(new InputStreamReader(System.in));
  17.  
  18.         int n = Integer.parseInt(reader.readLine());
  19.         ArrayDeque<Long> stack = new ArrayDeque<>();
  20.  
  21.         stack.push(1L);
  22.         stack.push(1L);//добавяме два пъти единица, защото това са първите ст-ти, които знаем
  23.  
  24.         while (n-- > 1) {
  25.             //за да изчисля текущата ст-т ни трябва предходната и тази преди нея
  26.             long a = stack.pop();// предходната ст-т
  27.             long b = stack.pop();//ст-та преди предходната
  28.             long c = a + b;
  29.  
  30.             stack.push(b);
  31.             stack.push(a);//защото b е предходното на c
  32.             stack.push(c);//c е предходното за следващото текущо, ъо идва на върха на stack
  33.         }
  34.  
  35.         System.out.println(stack.pop());
  36.  
  37.  
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement