一、ackerman函式:
ackerman函式的定義如下:
二、ackerman函式的遞迴實現:
利用遞迴來實現ackerman函式是比較簡單的:
1三、利用棧來實現ackerman函式:我們可以使用棧來模擬遞迴函式的過程,下列**中,使用棧st來儲存每個遞迴函式的引數m,tmp用來儲存每個遞迴函式的返回值:/*sample input:
20 1
31 145
sample output:62
738*/
910 #include11
using
namespace
std;
1213
int akm(int m, int
n)18
19int
main()
24 }
1//end/*sample input:
20 1
31 145
sample output:62
738*/
910 #include11
using
namespace
std;
1213
int akm(int m, int
n)22
else26}
27 tmp = n + 1;28
if(st.empty())break;29
else
33st.pop();34}
3536
return
tmp;37}
3839
intmain()
44 }
「心算「Ackerman函式
cpp view plain copy intack intm,intn else if n 0 else 求ack 2,29 是多少?在筆試現場,不准使用任何編譯工具。你仔細看之後會發現這個迴圈還是很多的!那我們該怎麼辦呢。那肯定就不是每個迴圈都來作,這個時候就要找規律,做推導。我們來看下 ack...
Ackerman的遞迴與非遞迴演算法
已知ackerman函式的定義如下 a km m,n n 1,text akm m 1,1 m neq 0,n 0 akm m 1,akm m,n 1 m neq 0,n neq 0 end akm m,n n 1 akm m 1 1 akm m 1,akm m,n 1 m 0m 0,n 0m 0 ...
棧 棧的實現
棧是一種線性儲存結構,棧中資料是按照 先進後出 方式進出棧,向棧中新增 刪除資料時,只能從棧頂進行操作。include using namespace std template class t class arraystack 建構函式 template class t arraystack arr...