#include <stdio.h>
#include <string.h>
#include <time.h>
#include <windows.h>
long GetCPUTime()
{
static LARGE_INTEGER li = {0};
LARGE_INTEGER linow = {0};
if (li.QuadPart == 0)
QueryPerformanceFrequency(&li);
QueryPerformanceCounter(&linow);
return linow.QuadPart * 10000 / li.QuadPart;
}
#ifdef __TURBOC__
#define get_clock_ticks(x) x=biostime(0,0L)
#else
#define get_clock_ticks(x) \
x = GetCPUTime()
#endif
double Factorial(int);
int main(int argc, char const *argv[])
{
int n;
double result;
long double start;
long double end;
long double time;
while(1){
printf("please input your number >0 ...\n");
scanf("%d", &n);
get_clock_ticks (start);
result = Factorial(n);
get_clock_ticks (end);
time = end - start;
printf("the result is %d! =: %f\n", n,result);
printf("spend times =: %Lf\n", time);
}
getchar();
return 0;
}
double Factorial(int n){
if (n == 1)
return 1;
else
return n*Factorial(n-1);
}