一、实验目的和要求
目的:将阶乘的递归算法一步一步转换为非递归算法
要求:其它要求同作业-01要求。
二、实验环境
软件环境:visual stdio 2017
硬件环境:①CPU:Intel(R)Core(TM)i7-8565U CPU @1.80Ghz
②内存:8.0GB
三、实验内容
(1)用递归代码实现n!求解。
(2)利用转换规则(不简化) 将代码(1)转换为非递归代码。
(3)简化并梳理代码(2)的流程。
(4)用以上三个独立模块,测试6!的计算结果。
四、实验过程
4.1 任务定义和问题分析
运用转换规则将阶乘递归算法转换为非递归算法,再经过简化规则得到最终版本。
4.2 数据结构的选择和概要设计
涉及到的数据结构:自行设计的链栈,传入参数为2个,一个记录数据,一个记录“地址”
概要设计:第一个函数:阶乘递归算法
第二个函数:仅使用转换规则得到的非递归算法
第三个函数:经化简规则得到的非递归算法
4.3 详细设计
函数1:简单的尾递归算法