洛谷B2144 阿克曼(Ackermann)函数
题目来源
B2144 阿克曼(Ackermann)函数 - 洛谷
题目描述
阿克曼(Ackermann)函数 A(m,n) 中,m,n 定义域是非负整数(m≤3,n≤10),函数值定义为:
A(m,n)=n+1;(m=0 时)。
A(m,n)=A(m−1,1);(m>0、n=0 时)。
A(m,n)=A(m−1,A(m,n−1));(m,n>0 时)。
输入格式
m 和 n
输出格式
函数值
输入输出样例
输入 #1
2 3
输出 #1
9
算法分析
此题考察我们函数的运用;
我们需要在函数中加一个判断语句;
在进行递归调用即可。
Code
#include <bits/stdc++.h>
using namespace std;
int A(int m,int n){if(m==0){return n+1;}else if(m>0&&n==0){return A(m-1,1);}else if(m>0&&n>0){return A(m-1,A(m,n-1));}
}
int main() {int m,n;cin>>m>>n;cout<<A(m,n);return 0;
}
点个赞吧