saimun1

Fibonaci Closest Number

Apr 30th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. //   Fibonacci Closest Number
  2. //   Simeon Baltadziev
  3. //   30.04.2017
  4. //   C programming basics
  5. //   WIP
  6.  
  7. #include <stdio.h>
  8.  
  9. int main (int argc, char *argv[])
  10. {
  11.     int i;
  12.     int j;
  13.     long  arrayNumber[40];
  14.     long  difference = 10;
  15.     long  minDifference = 100000;
  16.     long  number = 0;
  17.     //long  currentNumber;
  18.  
  19.     long long enteredNumber = 0;
  20.     printf("Enter fibonacci number: ");
  21.     scanf("%ld", &enteredNumber);
  22.     // Checks if input value is 0 or negative number
  23.     if(enteredNumber == 0) { printf("Error: Input larger number than 0"); }
  24.     if(enteredNumber <0)   { printf("Error: Input possitive number"); }
  25.     long long a = 1, b =1; // Declaring the fisrt two fibonacci numbers
  26.       for(i = 0; i<=40;i++) {
  27.         // Fibonacci Number Formula
  28.         b = a-b;                      
  29.         a = a+b;
  30.         arrayNumber[i] = b;
  31.         //prlong long f("%d\n", b);
  32.  
  33.         }
  34.  
  35.       for(j = 0; j<=40; j++) {
  36.     long long  diff = 0;
  37.               long long  diff2 = 0;
  38.               if(enteredNumber > arrayNumber[j] && enteredNumber < arrayNumber[j+1]) {
  39.        //prlong long f("number 1 and two %d,%d\n", arrayNumber[j], arrayNumber[j+1]);
  40.              
  41.               diff =  enteredNumber - arrayNumber[j];
  42.               diff2 = enteredNumber - arrayNumber[j+1];
  43.               if (diff < 0) { diff = diff*(-1); }
  44.               if (diff2< 0) { diff2 = diff2*(-1);}
  45.               if (diff<diff2) { minDifference = diff; number = j;}
  46.               if (diff2<diff) { minDifference = diff2; number = j+1;}
  47.               //prlong long f("diff1 and 2 %d, %d\n", diff,diff2);
  48.               }
  49.  
  50.         }
  51.  
  52.    // if(enteredNumber>0) {  
  53.     //prlong long f("The difference is %ld\n", minDifference);
  54.     printf("The closest number is: %ld\n", number);
  55.    printf("The closest number is: %ld", arrayNumber[number]);
  56.      // }
  57.       //printf("%d", arrayNumber[20]);
  58.  
  59.  
  60.     return 0;
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment