编写递归函数Acm(m,n)实现如下图所示的Acm函数,其中m、n为正整数。例如:Acm(2,1)=5,Acm(3,2)=29。
Acm(m,n) = \begin{cases}n+1&(m=0)
\Acm(m-1,1)&(n=0)
\Acm(m-1,Acm(m,n-1))&(m>0,n>0)
\end{cases}
输入m和n两个整数,输出Acm(m,n)。如果n小于0或m小于0,则返回-1。
输入:2 1
输出:5
#include<iostream>
using namespace std;
int Acm(int m,int n)
{
int a;
if(m==0&&(n!=0))
{
a=n+1;
return a;
}
if(n==0&&(m!=0))
a=Acm(m-1,1);
if(n>0&&m>0)
a=Acm(m-1,Acm(m,n-1));
if(m<0||n<0)
{
return -1;
}
}
main()
{
int m,n,result;
cin>>m>>n;
result=Acm(m,n);
printf("%d\n",result);
}