• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z własnymi funkcjami i liczeniem czasu

0 głosów
633 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez vega Użytkownik (510 p.)
#include <iostream>
#include <time.h>
#include <cstdlib>

using namespace std;

double czas, czas1;

long double fib(int n)
{
    clock_t start=clock();
    if(n==1 || n==2) return 1;
    else return fib(n-1)+fib(n-2);
    clock_t stop=clock();
    czas=(double)(stop-start)/CLOCKS_PER_SEC;
}

long double fib1(int m)
{

    double long a=1,b=1,c=0;

    clock_t start=clock();
    for(int i=0; i<m; i++)
    {
        c=a+b;
        a=b;
        b=c;
    }

    clock_t stop=clock();
    czas1=(double)(stop-start)/CLOCKS_PER_SEC;
}

int main()
{
    int n, m ;
    cout<<"Podaj ktora liczbe ciagu policzyc rekurencyjnie: ";
    cin>>n;
    cout<<fib(n)<<endl;
    cout<<"Ciag rekurencyjnie: "<<czas<<endl;

    cout<<"Podaj ktora liczbe ciagu policzyc iteracyjnie : ";
    cin>>m;
    cout<<fib1(m)<<endl;
    cout<<"Ciag iteracyjnie: "<<czas1<<endl;

    return 0;
}

 Witam! smiley

Próbowałam napisać własne funkcje, ktorę będą liczyć ciąg fibonacciego rekurencyjnie i iteracyjnie, ale w podejsciu iteracyjnym funkcja zwraca mi wartość nan. Mogłam namieszać przy zmiennych ale nie wiem co poprawiać. Prosze także o sprawdzenie czy poprawinie użyłam funkcji mierzenia czasu oraz czy moje funkcje są ogólnie dobrze napisane :)

Z góry bardzo dziękuje za pomoc smiley

 

1 odpowiedź

+1 głos
odpowiedź 28 grudnia 2016 przez Szahid Pasjonat (20,970 p.)
wybrane 28 grudnia 2016 przez vega
 
Najlepsza
Nie widzę żebyś w funkcji miał gdzieś return. Program się kompiluje ale zwraca co sam uważa. Popraw to. Ponad to wydaje mi się że w 21 linijce chciałeś napisać long double
komentarz 28 grudnia 2016 przez vega Użytkownik (510 p.)
Tylko problem w tym, że nie mam pojęcia co zwrócic w tym returnie ;/ I jeżeli umieszczam go na końcu funkcji to nie wyświetla mi sie tylko szukany wyraz ciągu, a wszystkie aż do niego ;/
1
komentarz 28 grudnia 2016 przez Szahid Pasjonat (20,970 p.)
long double fib1(int m)
{

    double long a=1,b=1,c=0;

    clock_t start=clock();
    for(int i=2; i<m; i++)  // tutaj wprowadziłem zmiane 
    {
        c=a+b;
        a=b;
        b=c;
    }

    clock_t stop=clock();
    czas1=(double)(stop-start)/CLOCKS_PER_SEC;
    return c;  // tutaj wprowadziłem zmiane 
}

 

komentarz 28 grudnia 2016 przez vega Użytkownik (510 p.)

Okej, zmieniłam ale po skompilowaniu otrzymuje takie coś jak na screenie, czyli jedna funkcja jest pomijana a czas nie jest policzony w żadnym przypadku Podrzuce Ci jeszcze w lepszej jakości http://imgur.com/a/fn68A

komentarz 28 grudnia 2016 przez Szahid Pasjonat (20,970 p.)
Kompilujesz nie ten program do krórego podałeś kod. Zamknij jeden z projektów
komentarz 28 grudnia 2016 przez vega Użytkownik (510 p.)

no to się popisałam laugh Wszystko działa, dziękuję badzo za pomoc!

komentarz 28 grudnia 2016 przez Szahid Pasjonat (20,970 p.)
Zdarza się najlepszym

Podobne pytania

0 głosów
1 odpowiedź 506 wizyt
0 głosów
1 odpowiedź 612 wizyt
pytanie zadane 10 października 2021 w C i C++ przez yato_ Początkujący (350 p.)
0 głosów
1 odpowiedź 732 wizyt
pytanie zadane 28 września 2016 w C i C++ przez Arkadiusz Sieczak Początkujący (400 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...