厦大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
时间限制: 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; }
相关文章推荐
- 厦大C语言上机 1395 组合
- 厦大C语言上机 1413 模式匹配
- 厦大C语言上机 1495 亲密对数
- 厦大C语言上机 1502 回文数猜想
- 厦大C语言上机 1400 出队统计
- 厦大C语言上机 1364 找闰年
- 厦大C语言上机 1417 A+B
- 厦大C语言上机 1503 字符串处理
- 厦大C语言上机 1365 小明的自娱自乐
- 厦大C语言上机 1425 字符串的增添
- 厦大C语言上机 1504 整数编号
- 厦大C语言上机 1366 Simple a + b
- 厦大C语言上机 1483 归一法则
- 厦大C语言上机 1265 字符串后继
- 厦大C语言上机 1367 几何级数的计算机验证法
- 厦大C语言上机 1378 寻书之旅2
- 厦大C语言上机 1484 成绩统计
- 厦大C语言上机 1355 开学第一考
- 厦大C语言上机 1370 谁是下一个十佳歌手
- 厦大C语言上机 1379 合并队伍