Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace _3 {
- class Program {
- static int Fibb(int[] arr, int elem) {
- int l = 0, r = arr.Length - 1;
- while (r - l > 1) {
- int a = 1, b = 2, c;
- while (l + b - 1 <= r && arr[l + b - 1] <= elem) {
- c = a + b;
- a = b;
- b = c;
- //Console.WriteLine($"a = {a}, b = {b}");
- }
- //Console.WriteLine("---");
- l = Math.Max(l + a - 1, 0);
- r = Math.Min(l + b - 1, arr.Length - 1);
- }
- //Console.WriteLine($"l = {l}, r = {r}");
- int ret = -1;
- if (arr[l] == elem)
- ret = l;
- else if (arr[r] == elem)
- ret = r;
- return ret;
- }
- static void Main(string[] args) {
- int[] arr = {1, 5, 10, 11, 12, 15, 17};
- Console.WriteLine(Fibb(arr, 14));
- }
- }
- }
Advertisement
RAW Paste Data
Copied
Advertisement