刚学c++的数据结构线性表的一道题目.. 完全我没有思路。。

任务是利用数据结构存储n!的大数阶乘怎么在节点里按结果的位数存储计算后的数据啊还有就是在那里表示计算这个啊(在节点里写这个的函数吗)因为不知道n为多少所以是需要用new节... 任务是利用数据结构存储n!的大数阶乘
怎么在节点里按结果的位数存储计算后的数据啊 还有就是在那里表示计算这个啊(在节点里写这个的函数吗)
因为不知道n为多少 所以是需要用new 节点吗(怎么用)
能给个打字的实现结构吗
展开
 我来答
烟花的尽头
2018-09-21 · TA获得超过645个赞
知道小有建树答主
回答量:170
采纳率:76%
帮助的人:59.2万
展开全部
大数阶乘显然会超出整形所能表示的范围。。。
其结果不能用int,double之类的存储
那么只能分开存储了,比如一个数位存一个元素
1*10^10000即1后面跟了一万个零,这个计算机是不能直接存储的,但我们可以用其他方式来,比如字符串,比如数组,我定义一个长度为10001的int数组,第一个元素为1,其他为0,打印的时候顺序打印,就能输出这个数字了。
我们解决了存储的问题,再来看计算的问题。数组相乘怎么算呢?建议你了解一下计算机乘法运算的原理【移位相加】,打个比方
int a[] = 12345; // 为了方便我直接写打印后的值,其实是a[0] = 1, a[1] = 2 ... a[4] = 5
int b[] = 12;
a * b 怎么算呢? 12345左移一位 = 123450 * 1 + 12345 * 2,超10进位。。。
具体的算法你去写吧。
最后一个提示:数组也是顺序表哦,顺序表是线性表的一种
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式