Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <windows.h>
- long int fibonacciIteracyjny(int ktory_wyraz)
- {
- int i=0, a=0, b=1;
- if (ktory_wyraz==0) return 0;
- for(i; i<(ktory_wyraz-1); i++)
- {
- b+=a;
- a=b-a;
- }
- return b;
- }
- long int fibonacciRekurencyjny(int ktory_wyraz)
- {
- if(ktory_wyraz==0) return 0;
- if(ktory_wyraz==1) return 1;
- else return (fibonacciRekurencyjny(ktory_wyraz-1)+fibonacciRekurencyjny(ktory_wyraz-2));
- }
- int main()
- {
- FILE *plik;
- int n,i;
- long int czas, czas2;
- long double ile;
- long long int ileTaktowUplynelo;
- long double ileMikroSekundUplynelo, ileMikroSekundUplynelo2;
- LARGE_INTEGER taktPoczatku, taktKonca, taktowNaSekunde;
- QueryPerformanceFrequency(&taktowNaSekunde);
- QueryPerformanceCounter(&taktPoczatku);
- printf("podaj wyraz ciagu Fibonacciego: ");
- scanf("%d", &n);
- plik=fopen("plik.csv","w");
- if (plik == NULL) {
- perror("Nie udalo sie otworzyc pliku 'plik.dat' do zapisu");
- return 1;
- }
- fprintf(plik, "lp.;wartość;czas iteracyjnie;czas rekurencyjnie\n");
- for(i=1;i<=n;i++)
- {
- czas=fibonacciIteracyjny(i);
- QueryPerformanceCounter(&taktKonca);
- ileTaktowUplynelo=taktKonca.QuadPart-taktPoczatku.QuadPart;
- ileMikroSekundUplynelo=((long double)ileTaktowUplynelo*1000000)/(long double)taktowNaSekunde.QuadPart;
- czas2=fibonacciRekurencyjny(i);
- QueryPerformanceCounter(&taktKonca);
- ileTaktowUplynelo=taktKonca.QuadPart-taktPoczatku.QuadPart;
- ileMikroSekundUplynelo2=((long double)ileTaktowUplynelo*1000000)/(long double)taktowNaSekunde.QuadPart;
- fprintf(plik,"%d;%d;%.2f;%.2f\n", i, czas,ileMikroSekundUplynelo, ileMikroSekundUplynelo2 );
- }
- fclose(plik);
- return 0;
- }
Add Comment
Please, Sign In to add comment