割り当てられたのは、再帰を使用してアッカーマン方程式を計算するプログラムを作成することでした。これは成功しました。課題の一部は次のように述べています。
「関数は、k の倍数である再帰関数呼び出しの数を出力する必要があります。n; m <= 3 の値に対して k = 100 を設定し、他のすべての値に対して k = 1; 000; 000 を設定します。プログラムは、行われた関数呼び出しの総数。」
アッカーマン関数は、関数呼び出しと再帰関数呼び出しの数を出力することになっていますが、その方法がわかりません。どんな助けでも素晴らしいでしょう。ありがとう!
これは私がこれまでに持っているものです:
#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;
}