在数学上有一个著名的“阿克曼(Ackermann)函数”,它是二元函数,其定义式为:ACK(M,N),M≥0,N≥0,且:

(1)ACK(M,0)=ACK(M-1,0) (M>0)

(2)ACK(M,N)=ACK(M-1,ACK(M,N-1))(M>0,N>0)

初始条件:ACK(0,N)=1+N  (N≥0)

请用递归方法求解ACK(M,N)。注意阿克曼函数递归调用次数增长是非常快的,比如要求ACK(3,7),需要经过将近70万次(693964次)递归调用。所以本题采用递归方法求解只能求解M和N很小的值。

代码:

#include<stdio.h>
int ACK(int m,int n)
{
    if(m==0&&n>=0)
      return 1+n;
    else if(n==0&&m>0)
      return ACK(m-1,0);
    else if(m>0&&n>0)
      return ACK(m-1,ACK(m,n-1));
    }
int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    printf("%d\n",ACK(m,n));
    getchar();
    getchar();
}

阿克曼(Ackermann)函数—递归相关推荐

  1. Ackermann函数(阿克曼函数)的递归、非递归(手动栈模拟)

    目录 一.Ackermann函数 二.C++实现 1. 递归实现 2. 栈模拟递归 一.Ackermann函数 Ack(m,n)={n+1m=0Ack(m−1,1)m>0,n=0Ack(m−1, ...

  2. Ackermann函数的递归求值

    描述 已知Ackermann函数定义如下: 写出计算Ack(m,n)的递归算法. 输入 多组数据,每组数据有一行,为两个整数m和n.当m和n都等于0时,输入结束. 输出 每组数据输出一行,为Ack(m ...

  3. 信息学奥赛一本通(1163:阿克曼(Ackmann)函数)

    1163:阿克曼(Ackmann)函数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12999     通过数: 10994 [题目描述] 阿克曼(Ackman ...

  4. 阿克曼(Ackmann)函数(信息学奥赛一本通-T1163)

    [题目描述] 阿克曼(Ackmann)函数A(m,n)中,m,n定义域是非负整数(m≤3,n≤10),函数值定义为: akm(m,n) = n+1;         (m=0时) akm(m,n) = ...

  5. 【1163】阿克曼(Ackmann)函数

    [问题描述]        阿克曼(Ackmann)函数A(m,n)中,m,n定义域是非负整数(m<=3,n<=10),函数值定义为:               akm(m,n) = n ...

  6. 18937 阿克曼(Ackmann)函数

    18937 阿克曼(Ackmann)函数 题干 18937 阿克曼(Ackmann)函数 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G++;G ...

  7. Python day10 global关键字、函数递归、匿名函数、map函数的用法详解

    1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage'def littepage():global ...

  8. php 回调递归,PHP数组函数 array_walk_recursive (使用回调函数递归遍历数组元素)

    在PHP中,数组函数 array_walk_recursive () 使用回调函数递归遍历数组元素. 函数语法:array_walk_recursive ( array &$array , c ...

  9. JS 函数 函数递归

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 重要:函数也是对象,你可以给它们添加属性或者更改它们的属性. 函数内部对象:arguments 解析:函数实际 ...

最新文章

  1. 基于EEG/EMG/EOG的多模态人机接口,实时控制软机器人手
  2. 第五届蓝桥杯 c/c++ B组6
  3. FTP虚拟账户的创建(1)
  4. 凡客即便走小米模式也很难
  5. ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略
  6. 安阳职业技术学院计算机录取分数线,安阳职业技术学院录取分数线2021是多少分(附历年录取分数线)...
  7. 前端vue的get和post请求
  8. GJM:用C#实现网络爬虫(一) [转载]
  9. [转载] Python中的set(集合)数据类型
  10. 计算机的科学导论pdf,教材计算机科学导论.PDF
  11. 数据库无限层级分类设计
  12. MATLAB公式希腊字母表
  13. 2022年南京医院三基考试耳鼻咽喉科学精选题及答案
  14. 李南江html5教程资源合集,哇爪跟着李南江学习HTML5—HTML学习
  15. FPGA和USB3.0通信-UVC摄像机
  16. maven-replacer-plugin的使用
  17. Android Init Language : init.rc
  18. div html用法详解,div标签详解
  19. Ubuntu14.04系统安装Latex及配置中文字体
  20. 探索学习:网红容器引擎Docker

热门文章

  1. python 中range(10)什么意思_请问在Python中for i in range(10,0,-1)是什么意思
  2. 3D打印技术发展前景令人欣喜,对人类未来发展有哪些影响?
  3. 【cvpr2022-论文笔记】《Class Re-Activation Maps for Weakly-Supervised Semantic Segmentation》
  4. LeetCode-强盗团伙
  5. 大数据行业应用之Hive数据分析航班线路相关的各项指标
  6. Java 基本 语法变量与运算符
  7. 【乐理学习笔记】如何读乐谱
  8. web前端-css中最直观的反馈-伪类及伪元素选择器的使用
  9. 严蔚敏《数据结构(C语言版)》第三章 纯C实现
  10. 爬取http://www.doutula.com网站表情包