⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.27.cpp

📁 严蔚敏数据结构习题C++实现
💻 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 + -