Ejemplo n.º 1
0
unsigned long long findFib( unsigned n )
{
  if ( 0 == fib[n] ){
    if (n < 2){
      fib[n] = 1;
    } else {
      fib[n] = findFib(n - 1) + findFib(n - 2);
    }
  }
  return fib[n];
}
unsigned fibSearch(int key)                      /* Извършва Фибоначиево търсене */
{ int p,q,r,k;
  k = findFib(n);
  p = fib[k-1];
  q = fib[k-2];
  r = fib[k-3];
  if (key > m[p].key)
    p += n - fib[k] + 1;
  while (p > 0)
    if (key == m[p].key)
      return p;
    else
      if (key < m[p].key)
        if (0 == r)
          p = 0;
        else {
          int t;
          p -= r;
          t = q;
          q = r;
          r = t-r;
        }
      else
        if (1 == q)
          p = 0;
        else {
          p += r;
          q -= r;
          r -= q;
        }
  return NOT_FOUND;
}
Ejemplo n.º 3
0
void printFib (unsigned long long n)
{
  std::clock_t start;
  start = std::clock();

  for(unsigned i = 0; i != n; ++i){
    m.lock();
    std::cout << "Fibonacci " << i + 1 <<  ": " <<  findFib(i) << " ";
    std::cout << (std::clock() - start) / (double)(CLOCKS_PER_SEC / 1000) << " ms" << std::endl;
    m.unlock();
  }
}
Ejemplo n.º 4
0
Archivo: 15.c Proyecto: quattrobg/TP
int main(){

	int x, arr[SIZE];
	
	x = enterX();

	findFib(x, arr);

	printArr(arr);

	return 0;
}
Ejemplo n.º 5
0
Archivo: 4.c Proyecto: quattrobg/TP
int main(){

	int x, y;
	
	printf("Vuvedi X : ");
	scanf("%d", &x);
	getchar();

	y = enterY(x);
		
	findFib(x, y);

	return 0;
}