题目:阿克曼函数
(Ackman)函数,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
输出:函数值
分析:
- 定义域:
- 非负整数
- 明确函数书写规律
#include<iostream>
using namespace std;
int akm(int m,int n)
{
if(m==0)
return (n+1);
else if(n==0)
return (akm(m-1,1));
else
return (akm(m-1,akm(m,n-1)));
}
int main()
{
int m,n;
cin>>m>>n;
cout<<akm(m,n)<<endl;
return 0;
}