close
#include <iostream>
using namespace std;
int Ack(int m, int n)
{
if (m==0)
{
return n+1;//01
}
if (n==0&&m>0)
{
return Ack(m-1, 1);//02
}
return Ack(m-1, Ack(m, n-1));//03
}
//上面這個int Ack() function 也一樣遞迴處理
//m, n 代入函數之後,先判斷01是否為真,如果為真,傳回n+1
//如果01為假,用02判斷,如果02判斷為真,傳回Ack(m,n)=Ack(m-1,1)
//如果02為假,那就是一般狀況03,傳回 Ack(m-1, Ack(m, n-1),然後繼續判斷是否繼續無法繼續展開
//如果可以繼續展開,就回到01, 02繼續判斷,無法繼續展開就把所有01結果相加,得到最後的結果。
void main ()
{
printf("%d\n",Ack(2,2));//呼叫亞克曼函數
system("pause");
}
文章標籤
全站熱搜
留言列表