当前位置: 首页 > 知识库问答 >
问题:

如何计算阶乘的结果作为一个数字应该占用多少位?

宁鹏程
2023-03-14

因此,阶乘函数可能返回非常大的数字。

我如何计算出阶乘必须返回的数据的大小?有没有一个函数可以根据我们计算阶乘的数字n快速给我数据的大小?

例如,阶乘(5) = 5 * 4 * 3 * 2 = 120

数字120将为120=0b1111000,其中0b表示这是一个二进制数。至少,我需要7位来表示结果和概率,我想将其放入8位中,成为一个字节

共有1个答案

钱弘壮
2023-03-14

您需要计算log2(阶乘(N)),四舍五入到下一个更高的数字,以获得表示结果所需的位数。如果您不确定是否可以使用当前设置计算或表示阶乘结果,您可以尝试计算2到N(包括2和N)范围内所有i的log2(i)之和。

作为示例,让我们计算阶乘(5)的位数:

log2(120) = 6.906, rounded up become 7 (bits)

否则,

log2(2) + log2(3) + log2(4) + log2(5) = 6.906, which gives same result
 类似资料:
  • 本文向大家介绍用C ++计算阶乘中的位数,包括了用C ++计算阶乘中的位数的使用技巧和注意事项,需要的朋友参考一下 给我们一个整数值,任务是首先计算一个数字的阶乘,然后计算结果中的总位数。 什么是阶乘数 数字的阶乘是通过将数字中的数字相乘,同时将数字的值减1来计算的。它由符号“!”表示 即0!,1!,2!,3!,5!,....等 0阶乘!和1!始终为1。 例如 说明-由于阶乘值6是720并且包含3

  • 问题内容: 我已经编写了此函数以返回给定数字的阶乘 只要给定的数字不超过20,就可以正常工作,因为这样结果会变得太高! 我该如何规避此限制,从而计算出较高数字的阶乘? 我到处搜索并找到了一些Swift的bignum库。我这样做是为了学习和熟悉Swift,因此我想自己解决这个问题。 问题答案: 这是一种可以让您找到非常大的阶乘的方法。 将大数字表示为数字数组。例如将是。将该数字乘以整数将需要两个步骤

  • 我如何使程序执行一个新的或重复的操作,或要求用户再次输入一个数字,并知道它的阶乘。

  • 我有个任务要用循环来做一个程序。用户输入1-98之间的一个数字,然后输出是该数字的阶乘。如果用户输入的数字不是上面的数字,则要求用户重新输入适当的数字。现在,当用户输入适当时,输出的结果与阶乘结果不匹配。 下面是这个错误的图片 这是密码 你能帮我修一下吗?

  • 本文向大家介绍如何计算Java对象占用了多少空间?,包括了如何计算Java对象占用了多少空间?的使用技巧和注意事项,需要的朋友参考一下 本文介绍了计算Java对象占用了多少空间的方法,分享给大家供大家参考,具体内容如下 一、对象头 对象的头部至少有两个WORD,如果是数组的话,那么三个WORD,内容如下: 1、对象的HashCode,锁信息等 2、到对象类型数据的指针 3、数组的长度(如果是数组的

  • 问题内容: 这是我的数据库的快照。 col1和col2都声明为int。 我的ComputedColumn当前添加列1和2,如下所示… 取而代之的是,我的ComputedColumn应该将列1和2(在中间包含 ’-‘ 字符)连接起来,如下所示… 那么,正确的语法是什么? 问题答案: 您可能将计算列定义为。试试吧。 或者,如果您愿意,可以替换为或选择其他长度。