Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел - C (СИ)
Формулировка задачи:
Вот мой код вычисления Факториала. а как посчитать время выполнения?Функции timeGetTime и GetTickCount и как их применить?
p.s. привет Борису Игоревичу
#include<stdio.h> int Factorial(int n) {if (n==1) return (1); else return(Factorial(n-1)*n); } int FactorialNotRec (int n) { int i,f=1; for (i=1;i<n+1;i++) { f=f*i; } return(f); } int main() { int i,n; printf("Vvedite n: \n"); scanf("%d",&n); if(n<=0) { printf("Nevernoe znachenie!\n"); } else { printf("Recurs: %d!=%d\n",n,Factorial(n)); printf("Circle: %d!=%d\n",n,FactorialNotRec(n)); } getch() }
Решение задачи: «Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел»
textual
Листинг программы
double start = GetTickCount(); int Factorial(int n); double finish = GetTickCount(); (double)finish - start; printf("%f\n", finish - start); double start1 = GetTickCount(); int FactorialNotRec (int n); double finish1 = GetTickCount(); (double)finish1 - start1; printf("%f\n", finish1 - start1);
Объяснение кода листинга программы
- double start = GetTickCount(); — Запоминаем время начала выполнения функции
- int Factorial(int n); — Дефиниция рекурсивной функции для вычисления факториала
- double finish = GetTickCount(); — Запоминаем время окончания выполнения функции
- (double)finish - start; — Вычисляем разницу между временем окончания и временем начала выполнения функции
- printf(
%f\n
, finish - start); — Выводим результат на экран - double start1 = GetTickCount(); — Запоминаем время начала выполнения функции
- int FactorialNotRec (int n); — Дефиниция итерационной функции для вычисления факториала
- double finish1 = GetTickCount(); — Запоминаем время окончания выполнения функции
- (double)finish1 - start1; — Вычисляем разницу между временем окончания и временем начала выполнения функции
- printf(
%f\n
, finish1 - start1); — Выводим результат на экран
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д