#先看题目
题目描述
阿克曼() 函数 A(m,n) 中,m,n 定义域是非负整数 (m≤3,n≤10),函数值定义为:
akm(m,n)=n+1;(m=0 时 )。
akm(m,n)=akm(m−1,1);(m>0,n=0 时 )。
akm(m,n)=akm(m−1,akm(m,n−1));(m,n>0 时 )。
输入格式
m 和 n。
输出格式
函数值。
输入输出样例
输入 #1
2 3
输出 #1
9
题目链接https://www.luogu.com.cn/problem/B2144?contestId=153440
#思路
直接套题目给的公式
#最后附上完整代码
#include<bits/stdc++.h>
using namespace std;
int akm(int n,int m)
{
if(n==0)return m+1;
if(n>0&&m==0)return akm(n-1,1);
if(m>0&&n>0)return akm(n-1,akm(n,m-1));
}
int main()
{
int n,m;
cin>>n>>m;
cout<<akm(n,m);
return 0;
}