StoneHaos

Untitled

Mar 17th, 2021
551
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace _3 {
  4.     class Program {
  5.  
  6.         static int Fibb(int[] arr, int elem) {
  7.             int l = 0, r = arr.Length - 1;
  8.             while (r - l > 1) {
  9.                 int a = 1, b = 2, c;
  10.                 while (l + b - 1 <= r && arr[l + b - 1] <= elem) {
  11.                     c = a + b;
  12.                     a = b;
  13.                     b = c;
  14.                     //Console.WriteLine($"a = {a}, b = {b}");
  15.                 }
  16.                 //Console.WriteLine("---");
  17.                 l = Math.Max(l + a - 1, 0);
  18.                 r = Math.Min(l + b - 1, arr.Length - 1);
  19.             }
  20.             //Console.WriteLine($"l = {l}, r = {r}");
  21.             int ret = -1;
  22.             if (arr[l] == elem)
  23.                 ret = l;
  24.             else if (arr[r] == elem)
  25.                 ret = r;
  26.             return ret;
  27.         }
  28.  
  29.         static void Main(string[] args) {
  30.             int[] arr = {1, 5, 10, 11, 12, 15, 17};
  31.             Console.WriteLine(Fibb(arr, 14));
  32.         }
  33.     }
  34. }
RAW Paste Data