一 、 实习题目与要求
- 所选题目
大数运算——计算n的阶乘(n>=20)
- 功能要求
程序需能实现一定范围内n值的阶乘计算,并且结果精确
二 、 需求分析
- 问题描述
利用链表数据结构设计程序完成n阶乘的运算及输出
- 累计运算的中间结果和最终的计算结果的数据类型要求是整型
- 需设计合适的存储结构,要求每个元素或结点最多存储数据的3位数值
- 基于设计的存储结构实现乘法操作,要求从键盘上输入n值;在屏幕上显示最终计算结果
- 系统环境
系统:Windows 10
编译器:Visual Studio
三 、 概要设计
- 数据结构设计
- 逻辑结构:因为本程序希望数据成员之间是一对一的关系,以便于进行数值运算,故采用线性结构
- 物理结构:因为本程序所涉及数值运算较大,所以采用链式结构
- 存储结构设计
由题目要求可知,程序将进行较大数值的计算、更新、输出等操作,所以一般数据类型无法满足运算条件,且静态存储结构也不符题意,故选择动态的双重链表数据结构
- 算法设计
本程序的重点即在算法设计上,现以日常笔算为例介绍数值运算的主要思想
- 6! = 120 * 6
2.8! = 5040 * 8
3.11! = 3628800 * 11
由图可