您的位置:首页 > 编程语言 > C语言/C++

厦大C语言上机 1390 伪ackerman函数

2018-01-08 16:29 489 查看
1390.伪ackerman函数

时间限制: 1000 MS          内存限制: 65536 K

        

提交数: 1 (0 users)          通过数: 1 (1 users)

问题描述

小明在看数学书的时候看到了一个叫ackerman的数学函数,感觉非常神奇,于是他写了几个小数据算了一下,发现怎么也算不出来。无奈的他小小的修改了一下函数,发现变的简单许多。可是他现在想要得到的结果有很多,你能帮他吗?该函数如下:

        {n+1;            m=0,n>0

A(m,n)=     {A(m-1,1);       n=0,m>0

            {A(m-1,n-1)+n;   n>0,m>0

            {0;              n=0,m=0

输入格式

输入第一行一个整数T,表示小明询问你的次数。(T<=100)

接下来的T行每行两个整数M,N。(0<=M,N<=1000)

输出格式

对每个M,N输出相应的A(M,N)的值,每个值输出一行。

样例输入

3

1 1

22 15

23 21

样例输出

1

125

232

来源
xmu

#include <stdio.h>

int ackerman(int m, int n)
{
if (m == 0 && n > 0)
return n + 1;
else if (n == 0 && m > 0)
return ackerman(m - 1, 1);
else if (n > 0 && m > 0)
return ackerman(m - 1, n - 1) + n;
else
return 0;
}

int main()
{
int t;
int m, n;

scanf("%d", &t);
while (t--)
{
scanf("%d %d", &m, &n);
printf("%d\n", ackerman(m, n));
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: