题目链接:https://vjudge.net/problem/51Nod-2656
问题描述
众所周知,阿克曼函数中扮演一个重要的角色在理论计算机科学领域。然而,在另一方面,戏剧性的快速增长速度引起的功能很难calcuate阿克曼的价值功能。
阿克曼函数可以递归地定义如下:
现在艾迪给你两个数字:m和n,你的任务是计算的价值(m,n)。这是如此简单的问题,如果你解决这个问题,你将收到一个奖(艾迪将邀请你,6餐厅吃晚饭)。
输入
的每一行输入两个整数,即m,n,0 < m < = 3。
注意,当m < 3,n可以是任意整数不到1000000,而m = 3,n的值限制在24。
输入终止结束的文件。
输出
为每个值m,n,打印出的价值(m,n)。
样例输入
1 3 2 4
样例输出
5 11
思路:
#include<bits/stdc++.h>
using namespace std;
int pow(int x)
{
int ans=1;
for(int i=1;i<=x;i++)
{
ans*=2;
}
return ans;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
if(m==0) printf("%d\n",n+1);
else if(m==1)
{
printf("%d\n",n+2);
}
else if(m==2) printf("%d\n",2*n+3);
else if(m==3)
{
printf("%d\n",pow(n+3)-3);
}
}