주어진 숫자의 계승을 계산하는 데 필요한 시간을 2 백만 번 표시하는 프로그램을 작성하고 있습니다. C/C++ Eclipse 환경에서 데비안 리눅스를 사용하여 작성했습니다. 프로그램이 int temp = n * rfact(n-1);
에 도착하면 프로그램이 중단되고 다른 작업은 수행되지 않습니다.C에서 재귀 팩토리 프로그램이 실행될 때 응답하지 않는다
는 여기에 지금까지있어 무엇 : 당신은 무한 재귀으로 실행되도록
#include <stdio.h>
#include <time.h>
//prototypes
int rfact(int n);
main()
{
int n = 0;
int i = 0;
double result = 0.0;
clock_t t;
printf("Enter a value for n: ");
scanf("%i", &n);
printf("n=%i\n", n);
//get current time
t = clock();
//process factorial 2 million times
for(i=0; i<2000000; i++)
{
rfact(n);
}
printf("n=%i\n", n);
//get total time spent in the loop
result = (clock() - t)/(double)CLOCKS_PER_SEC;
//print result
printf("runtime=%d\n", result);
}
//factorial calculation
int rfact(int n)
{
int temp = n * rfact(n-1);
printf(i++);
return temp;
}
와우 큰 facepalm 그게 좋은 지적이야. – zakparks31191