할당은 성공적으로 수행 한 재귀를 사용하여 Ackermann 방정식을 계산하는 프로그램을 작성하는 것이 었습니다. 과제 부품 말한다 :C에서 k의 배수 인 재귀 함수 호출을 계산
"기능은 K의 배수 재귀 함수 호출의 수를 출력한다 집합 K = N의 값 100; m < = 3, K = 1; 000;. 다른 모든 값은 000입니다. 또한 프로그램은 함수 호출의 총 수 을 인쇄해야합니다. "
은 ACKERMANN 함수는 함수 호출 및 재귀 함수의 수를 호출을 인쇄하도록되어,하지만 난 그것을 수행하는 방법을 알아낼 수 없습니다. 어떤 도움이라도 좋을 것입니다. 감사!
#include <stdio.h>
//function to compute the end result ackermann equation
int ackermann (int n, int m)
{
int result = 0;
if (n == 0)
{
result = m + 1;
} else if (m == 0)
{
result = ackermann(n - 1, 1);
} else
{
result = ackermann(n - 1, ackermann(n, m - 1));
}
return result;
}
//main function
int main(int argc, const char * argv[])
{
char ans = 'y';
int m, n, result;
printf("\n\n------Ackermann Function------");
while (ans == 'Y' || ans == 'y') {
printf("\nPlease enter n: ");
scanf("%d", &n);
printf("\nPlease enter m: ");
scanf("%d", &m);
result = ackermann(n, m);
printf("\nResult: %d", result);
printf("\n\nDo you want to go again? ");
scanf(" %c", &ans);
}
return 0;
}
전역 변수를 사용하여 각 호출에서 값을 증가시킵니다. –