C 我应该使用什么数据结构来计算长度超过50位数字的阶乘?

C 我应该使用什么数据结构来计算长度超过50位数字的阶乘?,c,data-structures,C,Data Structures,有哪些数据结构可以帮助我存储和计算50位以上数字的阶乘?最简单的方法可能是使用一个字符*,该字符可以长到您需要的长度,没有特殊限制,并且可以轻松管理操作 当然,这不是最紧凑的方法,但它认为如果您不真正需要效率,它可以很好地工作 编辑:我没有谈论任何关于bigint的lib,只是因为我认为你想知道如何通过编程来实现它。尝试一个像或这样的整数库。看到了Jamie计算的位数,我猜这里的位数将大于宇宙中基本粒子的估计数。因此,这是另一种说明你的问题在我们所知的这个世界上没有解决方案的方式。使用近似值n!

有哪些数据结构可以帮助我存储和计算50位以上数字的阶乘?

最简单的方法可能是使用一个字符*,该字符可以长到您需要的长度,没有特殊限制,并且可以轻松管理操作

当然,这不是最紧凑的方法,但它认为如果您不真正需要效率,它可以很好地工作


编辑:我没有谈论任何关于bigint的lib,只是因为我认为你想知道如何通过编程来实现它。

尝试一个像或这样的整数库。

看到了Jamie计算的位数,我猜这里的位数将大于宇宙中基本粒子的估计数。因此,这是另一种说明你的问题在我们所知的这个世界上没有解决方案的方式。

使用近似值n!对于大的n。存储数字的最佳方法应该是,例如,对于非常大的数字,使用10^x^y。

请注意,如果您想要准确的数字,您将无法立即将整个数字存储在内存中,除非您对尾随的零的数量进行连续计数。即使这样,它也可能不合适。例如:告诉我将有2499999999999999999999999999999999999999999999999999999999999999999尾随零可以有人帮助我如何在不使用任何库的情况下执行此操作请如何查找内存以对任意精度整数执行此操作?这根本是不可能的。@mousy,在大多数编程语言中,实现以字符串表示的整数的自定义乘法需要1-2个小时。着手我做过一次+1对@drawnoward提到任意精度,他问你理论上能用什么;不确定是否必须受到物理内存限制的限制。他没有用短语或标签表示他的问题是理论性的,而是请求帮助实现这项任务。