当前位置: 首页 > 面试题库 >

选择哪种数据类型或数据结构来计算100的阶乘?

陈允晨
2023-03-14
问题内容

我想写一个程序来评估给定整数的阶乘。

根据基本知识,我在java中编写了以下代码

long fact(int num){
if(num == 1)
 return 1;
else
 return num*fact(num-1);
}

但是后来我意识到,对于许多整数输入来说,结果可能不是所希望的,因此对于测试,直接将输入设为100。

我的怀疑是正确的,因为我得到的结果为“ 0”(因为结果可能超出了很长的范围)。

因此,我只是好奇并渴望知道如何使我的程序在输入<= 150的情况下工作。

我将感谢使用C编程语言或Java的任何有效解决方案。


问题答案:

BigInteger* 是您的课程。它可以存储看似 任意大小的 整数*

    static BigInteger fact(BigInteger num) {
        if (num.equals(BigInteger.ONE))
            return BigInteger.ONE;
        else
            return num.multiply(fact(num.subtract(BigInteger.ONE)));
    }


 类似资料:
  • 主要内容:数值类型,日期和时间类型,字符串类型,二进制类型MySQL 提供了大量的数据类型,为了优化存储和提高数据库性能,在任何情况下都应该使用最精确的数据类型。   前面主要对 MySQL 中的数据类型及其基本特性进行了描述,包括它们能够存放的值的类型和占用空间等。本节主要讨论创建数据库表时如何选择数据类型。   可以说字符串类型是通用的数据类型,任何内容都可以保存在字符串中,数字和日期都可以表示成字符串形式。   但是也不能把所有的列都定义为字符串类

  • 以下是我正在使用的数据结构示例- 所有数据都在字符串中,包括子列表都是字符串值 子列表值可能与其他子列表值重复 我需要能够获得大小并遍历子列表 本质上,每个子列表都有我需要获取的引用ID,以及与该列表关联的子列表ID 我不知道哪一个最合适。我可能会先选择我能实施的那个。 我应该使用、、还是与列表一起使用?

  • 问题内容: MySql中使用哪种数据结构? 问题答案: 可能很多,但从B树开始。

  • 问题内容: 如果在表的一列中,我希望这些值是“是”,“否”或“可选”,那么我需要使用哪种数据类型? 问题答案: 少量: 占用1个字节,但是最多可以将8个BIT字段合并到SQL Server中的单个BYTE中。 存储以下两个值之一:1(表示true)和0(表示false),因此该列需要为可空值,以便NULL作为您的第三个值传递 CHAR(1) 需要1个字节 如果不区分大小写ASCII,则为26个字符

  • 问题内容: 描述 一个Java程序,用于读取文本文件并按字母顺序打印每个唯一单词以及单词在文本中出现的次数。 程序应声明一个类型变量来存储单词和相应的出现频率。不过,哪种具体类型?还是? 输入应转换为小写。 单词不包含以下任何字符: 输出示例 备注| 我知道,我已经在Perl中看到了用两行代码完成的优雅解决方案。但是,我想在Java中看到它。 编辑:哦,是的,显示使用这些结构之一的实现(在Java

  • 问题内容: 我想计算的不是字符串,而是整个数据结构的md5哈希。我了解执行此操作的方法的机制(调度值的类型,规范化字典键顺序和其他随机性,递归为子值等)。但这似乎是一种通常有用的操作,所以令我惊讶的是我需要自己动手操作。 Python中有一些更简单的方法来实现这一目标吗? 更新:建议使用酸洗,这是一个好主意,但是酸洗不能规范化字典的键顺序: 问题答案: bencode对字典进行排序,因此: 印刷品