피보나치 실행시간 측정프로그램
재귀함수 피보나치의합 실행시간 측정하는건데
왜 계속 시간0이뜨죠?
사진 돌아가서 죄송해요 안돌려지네요ㅠㅠ 왜 안될까요알려주세요ㅠㅠㅠ 뭐가 잘못된갈까요?????????????
너무 작은 숫자를 입력하면 0가 나올겁니다.
캡쳐 이미지 처럼 40 정도 입력하면 0가 아닌 시간이 표시됩니다.
[수정소스]
#include <stdio.h>
#include <time.h>
#include <stdlib.h> // system 함수 사용
//참고 : https://jow1025.tistory.com/2
int fibo_recursive(int n);
int main() {
clock_t start, finish;
double duration;
int n;
printf("계산하고 싶은 항의 숫자를 입력해라 : ");
scanf_s("%d", &n);
start = clock();
int x = fibo_recursive(n);
finish = clock();
duration = (double)(finish - start) / CLOCKSPERSEC;
printf("재귀구현시간 %f초\n", duration);
system("pause");
return 0;
}
int fibo_recursive(int n) {
if (n == 0) return 0;
else if (n == 1) return 1;
else return fiborecursive(n - 1) + fiborecursive(n - 2);
}
[실행 결과 캡쳐]
https://bloodstrawberry.tistory.com/27?category=969281
아래의 코드로 한번 맞춰서 실행해보세요.
코드를 공유해주시면 제가 테스트 해보고 싶지만.. 화면이 돌아가있어서 보기 힘드네요 ^^...
너무 빨리 계산되어서 0이 될 수도 있으니 숫자를 크게 잡아보세요.
#include <stdio.h> #include <time.h> int main() { int TESTCASE = 1000; int TIME = 0; /* Timer on */ clock_t start = clock(); /* 실행 코드 */ for (int tc = 1; tc <= TESTCASE;tc++) { int a = 1; for (int i = 0; i < 100000; i++) { a += i; a %= 100; } } /* Timer off */ TIME += ((int)clock() - start) / (CLOCKS_PER_SEC / 1000); printf("TIME : %d ms\n", TIME); /* ms 단위로 출력 */ return 0; }