1163:阿克曼(Ackmann)函数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 12999 通过数: 10994
【题目描述】
阿克曼(Ackmann)函数A(m,n)中,m,nm,n定义域是非负整数(m≤3,n≤10),函数值定义为:
【输入】
输入m和n。
【输出】
函数值。
【输入样例】
2 3
【输出样例】
9
【分析】
根据数学定义,设 akm(m,n) 函数求解阿克曼函数的值,递归式和递归出口为:m>0 && n==0时,akm(m,n) = akm(m-1,1);m>0 && n>0时,akm(m,n) = akm(m-1, akm(m,n-1));m=0时,akm(m,n) = n+1。
【参考代码】
#include <stdio.h> int akm(int m,int n) { if(m==0) return n+1; else if(m>0 && n==0) return akm(m-1,1); else if(m>0 && n>0) return akm(m-1,akm(m,n-1)); } int main() { int m,n; scanf("%d%d",&m,&n); printf("%d\n",akm(m,n)); return 0; }
http://ybt.ssoier.cn:8088/problem_show.php?pid=1163