多的任務是創建一個使用遞歸,我成功地做了計算公式阿克曼的程序。所述任務的一部分表示:計數遞歸函數調用它是k的用C
「功能應該打印遞歸函數調用其是多個k的數目集合K = 100的n個 值;米< = 3,且k = 1; 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;
}
使用全局變量,每次調用增加其價值。 –