funkcja wykorzystująca wskaźniki

0

Cześć czy ktoś pomógł mi z tym zadaniem? Jakoś nie wiem od czego zacząć :) . I jakie to liczby Fibonacciego tj chodzi o ten specjalny ciąg?

Napisz funkcję o parametrach a, b typu int. Jeżeli a lub b są liczbami niedodatnimi lub b>a to funkcja
zwraca NULL. W przeciwnym wypadku funkcja zwraca wskaźnik do dynamicznie utworzonej tablicy
liczb, w której kolejnymi elementami będą liczby Fibonacciego z przedziału [a,b]. Ponadto funkcja
w dodatkowym parametrze n zwraca ilość zapisanych w tablicy liczb Fibonacciego.

1
int* Function(int a, int b, int* n)
{
    if( a <= 0 || b <= 0 || b > a )
        return NULL;

   *n = 0;

   int* Tablica = new int[ b - a ];  //Nie jestem teraz w stanie obliczyć dokładnego rozmiaru takiej tablicy.
   
   int l1 = 1;
   int l2 = 1;
   int ln = l1 + l2;
   while( ln < n )
   {
       if( ln > a ) Tablica[n++] = ln;

      l1 = l2;
      l2 = ln;
      ln = l1 + l2;
   }

   return Tablica;
}

Pisane z palca na szybko. Na pewno da się lepiej, ale nie o tej godzinie :)

1

Da się bez problemu obliczyć ile będzie elementów w tym ciągu w danym przedziale
pseudokodem
ilość liczb fibonacciego w danym przedziale <a,b>
floor(ln(b*5^0.5)/ln((1+5^0.5)/2))-ceil(ln(a*5^0.5)/ln((1+5^0.5)/2))+1

1 użytkowników online, w tym zalogowanych: 0, gości: 1