borovaneca

Recursive Fibonacci

Jun 3rd, 2023
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Fibonacci2 {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.  
  8.         int[] inputArr = new int[Integer.parseInt(scanner.nextLine())];
  9.  
  10.         if (inputArr.length <= 1) {
  11.             System.out.println("1");
  12.         } else {
  13.             inputArr[0] = 1;
  14.             inputArr[1] = 1;
  15.             for (int i = 2; i < inputArr.length; i++) {
  16.                 inputArr[i] = inputArr[i-1] + inputArr[i-2];
  17.             }
  18.         }
  19.         boolean fibonacci = false;
  20.         int count = 0;
  21.         for (int i = 2; i < inputArr.length; i++) {
  22.             if (GetFibonacci(inputArr[i]) == GetFibonacci(inputArr[i-1]) + GetFibonacci(inputArr[i-2])) {
  23.                 count++;
  24.             }
  25.             if (count == inputArr.length - 2) {
  26.                 fibonacci = true;
  27.             }
  28.         }
  29.         if (fibonacci) {
  30.             System.out.println(inputArr[inputArr.length - 1]);
  31.         }
  32.     }
  33.  
  34.     public static int GetFibonacci(int number) {
  35.  
  36.         int first = 1;
  37.         int second = 1;
  38.         int sum = 1;
  39.         for (int i = 1; i < number; i++) {
  40.             sum = first + second;
  41.             if (sum == number){
  42.                 return sum;
  43.             }
  44.             if (i % 2 == 0) {
  45.                 second = sum;
  46.             } else {
  47.                 first = sum;
  48.             }
  49.         }
  50.         if (sum <= 0) {
  51.             return 1;
  52.         } else {
  53.             return sum;
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment