描述
已知Ackermann函数定义如下:
写出计算Ack(m,n)的非递归算法。
输入
多组数据,每组数据有一行,为两个整数m和n。当m和n都等于0时,输入结束。
输出
每组数据输出一行,为Ack(m,n)。
输入样例 1
2 1 0 0
输出样例 1
5
#include <iostream>
using namespace std;
int Ack(int m,int n)
{
int akm[m+1][100];
for(int j=0;j<100;j++)
akm[0][j]=j+1;
for(int i=1;i<=m;i++)
{
akm[i][0]=akm[i-1][1];
for(int j=1;j<100;j++)
akm[i][j]=akm[i-1][akm[i][j-1]];
}
return (akm[m][n]);
}
int main()
{
while (1)
{
int m,n;
cin>>m>>n;
if(0==m && 0==n) break;
cout<<Ack(m,n)<<endl;
}
return 0;
}
原博地址
https://blog.csdn.net/weixin_43673589