ackerman函数的递归求解.cpp

来自「动态规划解一系列经典问题」· C++ 代码 · 共 20 行

CPP
20
字号
//Ackerman函数的递归求解

#include <stdio.h>
int Ack(int n,int m)
{
	if(n==1 && m==0) return 2;
	if(n>=2 && m==0) return n+2;
	if(n==0 && m>=0) return 1;
	return Ack(Ack(n-1,m),m-1);
}

void main()
{
	int n=-1,m=-1;
	printf("请输入2个非负整数n, m= ");
	while(n<0 || m<0) scanf("%d,%d",&n,&m);
	printf("Ackerman(%d,%d)= %ld\n",n,m,Ack(n,m));
	//(n,m)>=(4,3)||(3,4)无法输出答案
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?