saimun1

Fibonaci Closest Number v2

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