📄 3.27.cpp
字号:
#include <iostream>
#include <stack>
#define X 100000
using namespace std;
typedef struct
{
int m;
int n;
}item;
int ackm1(int m, int n);
int ackm2(int m, int n);
int main()
{
int m,n;
cin >> m >> n;
cout << ackm1(m,n) << ' ' << ackm2(m,n);
system("pause");
return 0;
}
int ackm1(int m, int n)
{
if(m == 0)
return n+1;
else if(n == 0)
return ackm1(m-1,1);
else
return ackm1(m-1,ackm1(m,n-1));
}
int ackm2(int m, int n)
{
stack<item> s;
int mark = 0;
item temp = {m,n};
s.push(temp);
while(!s.empty())
{
if(s.top().m == 0)
{
mark = s.top().n+1;
s.pop();
if(!s.empty())
s.top().n = mark;
}
else if(s.top().n == 0)
{
item temp = {s.top().m-1,1};
s.pop();
s.push(temp);
}
else
{
item temp1 = {s.top().m-1,X};
item temp2 = {s.top().m,s.top().n-1};
s.pop();
s.push(temp1);
s.push(temp2);
}
}
return mark;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -