아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

늘씬한호박벌228
늘씬한호박벌228

피보나치 실행시간 측정프로그램

재귀함수 피보나치의합 실행시간 측정하는건데

왜 계속 시간0이뜨죠?

사진 돌아가서 죄송해요 안돌려지네요ㅠㅠ 왜 안될까요알려주세요ㅠㅠㅠ 뭐가 잘못된갈까요?????????????

2개의 답변이 있어요!
  • 꾸준한하마55
    꾸준한하마55

    너무 작은 숫자를 입력하면 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; }