/*本程序用堆栈思想实现AckermannFunction函数功能*/
/*编者:Lgw*/
/*专业:04计本二*/
/*日期:07/3/13*/
#include<iostream.h>
/*函数声名*/
int AckermannFunction(int m, int n);
/*主函数*/
void main()
{
int a =AckermannFunction(2,3);/*调试数据*/
cout<<"AckermannFunction(2,3)="<<a<<endl;/*打印过程*/
}
/*-------------------------------------------------------------*/
/*函数的功能:计算AckermannFunction函数*/
/*函数返回值:函数的值(整型数)*/
/*函数参数 第一个:函数的 m(整型数)*/
/*函数参数 第二个:函数的 n(整型数)*/
/*-------------------------------------------------------------*/
int AckermannFunction(int m, int n)
{
int a[100] ;/*数组"栈"++++看情况可以加大数组元素*/
a[0]=m;/*初使化*/
a[1]=n;/*初使化*/
int i=1;/*栈指针*/
while(i!=0)
{
if(a[i-1]==0)/*第一种情况*/
{                     /*A(m,n)=n+1 当m=0*/
a[i-1]=a[i]+1;
i--;/*出栈*/
}
else if(a[i]==0)/*第二种情况*/
{               /*A(m,n)=A(m-1,1)*/
a[i]=1;
a[i-1]=a[i-1]-1;
}
else
{
int temp=a[i];/*第三种情况 A(m, n)=A(m-1,A(m,n-1))*/
a[i]=a[i-1];
a[i-1]=a[i-1]-1;
i++;
a[i]=temp-1;
}
for(int k=0;k<=i;k++)/*输出运算过程*/
cout<<a[k]<<" ";
cout<<endl;
}
return a[0];
}

用堆栈思想实现AckermannFunction函数功能相关推荐

  1. PHP高级计算器的过程,PHP基于堆栈实现的高级计算器功能示例

    PHP基于堆栈实现的高级计算器功能示例 发布于 2017-10-14 13:38:26 | 108 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  2. 函数功能MATLAB

    近期一直在查找函数功能之类的题问,现在正好有机会和大家享共一下. 百科名片 录目 简介 开展程历 要主功能 新特性 版本分析 特色 优势 开展 简介 开展程历 要主功能 新特性 版本分析 特色 优势 ...

  3. R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)

    R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能) 目录 R语言计算dataframe数据列中各分类的计数(类似pandas value

  4. setsockopt()函数功能介绍

    setsockopt()函数功能介绍 功能描述:获取或者设置与某个套接字关联的选项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层. 用法: #include <sys/types.h ...

  5. Jmeter内置函数功能(五)

    在企业微信接口创建会议室时. {"name":"18F-会议室","capacity":10,"city":" ...

  6. tf.pad函数功能介绍

    tf.pad()函数主要是对张量在各个维度上进行填充,该函数的参数如下所示: pad(tensor,paddings,mode='CONSTANT',name=None ) 其中: tensor是待填 ...

  7. fread和fwrite函数功能

    fread和fwrite函数功能   用来读写一个数据块. 一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); ...

  8. Delphi Format函数功能及用法详解

    DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...

  9. Unity3D-相关函数功能

    函数功能 1.每隔固定时间执行一次,时间间隔固定(0.02s),时间间隔可以修改. 适用性:适合对物体作移动,旋转等物理操作. 函数执行不受渲染影响. private void FixedUpdate ...

最新文章

  1. vue使用命令行构建完项目后_vue-cli 构建项目在IE中无法运行解决方式(build之后可运行)...
  2. Windows - cd 命令
  3. SAP Cloud for Customer Lead OData服务的ETAG字段
  4. 通过jQuery获取窗口的高度
  5. 使用h5py操作hdf5文件
  6. java分布式集群框架_Cacheonix——Java的分布式集群缓存框架
  7. 针对建筑设计开发的CAD软件——ARCHICAD 24 for mac
  8. listview去掉底部多出的边框黑色
  9. A1008 Elevater(20)
  10. 图片验证码识别教程技术原理分析
  11. TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers
  12. 开放存取知识库及其数据采集规范的研究
  13. 【规范】万字集大成的HDLFPGA学习和规范
  14. 如何选购护眼灯呢?南卡/明基/孩视宝台灯哪个比较好?「测评三款热销护眼灯」
  15. 德佑地产房产经纪人区域总监访谈:精耕,业精于勤
  16. CSS3 背景和边框
  17. 微软2011年4月最有价值专家(MVP)名单 51CTO十七位用户当选
  18. css字行高怎么设,css文本行高怎么设置-电脑自学网
  19. Win10 64位系统安装Microsoft Visual Studio和Intel Fortran(非正式名称)
  20. CAD下载的流程,具体步骤是什么样的呢?

热门文章

  1. TypeC转接头-边充电边听歌支持线控通话
  2. 12_Go语言 反射详解
  3. (c#)AutoCAD二次开发调试时,netload后,输入命令,却显示为未知命令
  4. 【中兴ZXV10 B860A1.1】
  5. 【周易测名字】2019年5月出生属狗男孩,王子沐、王梓沐,哪个名字更合适?
  6. python wiki中文语料分词
  7. Java多线程--设计模式(二、Immutable Object(不可变对象)模式)
  8. 【我的创作纪念日】恒川的创作一周年
  9. viata home basic iis 无法运行 asp 程序
  10. Linux装机装软件指南