Java 中查找给定数字的阶乘的最后两位数10 Sept 2024 | 4 分钟阅读 在 Java 中查找给定数字的阶乘的最后两位是一个常见的数学计算。该任务涉及计算阶乘并提取结果的最后两位数字。Java 提供了多种方法来实现这一点。 考虑一个整数 Num;任务是查找数字阶乘的最后两位。 示例 1 输入:N = 3 输出:06 示例 2 输入:N = 8 输出:40 示例 3 输入:N = 10 输出:00 方法:模算术方法它有效地计算了阶乘模 100,确保结果中仅保留最后两位数字。该代码为确定这些最后两位数字提供了一个简单的解决方案。 算法步骤 1:首先定义一个整数变量 num 并将其设置为所需的输入值。 步骤 2:定义一个整数变量 lastTwoDigits 来存储阶乘的最后两位数字。将其初始化为 0。 步骤 3:检查 num 的值是否大于或等于 10。如果是,则将 lastTwoDigits 设置为 0,因为大于或等于 10 的数字的阶乘在十进制表示法中将始终以“00”结尾。 步骤 4:如果 num 小于 10,则调用 findLastTwoDigitsOfFactorial 方法并将 num 作为参数传递,以计算阶乘的最后两位数字。 步骤 5:在 findLastTwoDigitsOfFactorial 方法内部
步骤 6:打印输入 num 和输出 lastTwoDigits 以显示结果。 实施文件名:LastTwoDigitsOfFactorial.java 输出 Input: Num = 8 Output: 20 时间复杂度:由于使用从 2 到 n 的循环计算阶乘,因此代码的时间复杂度为 O(n)。 辅助空间:辅助空间复杂度为 O(1),因为代码使用的空间不随输入值 n 的变化而变化。 方法:使用动态规划使用动态规划方法查找给定数字的阶乘的最后两位,涉及构建一个表或数组来有效地存储中间结果。 算法步骤 1:首先定义一个整数变量 n 并将其设置为所需的输入值。 步骤 2:创建一个整数变量 lastTwoDigits 来存储阶乘结果的最后两位数字。 步骤 3:检查 n 是否小于或等于 1。如果为真,则返回 1,因为 0 和 1 的阶乘始终为 1,没有需要计算的附加数字。 步骤 4:创建一个大小为 n + 1 的整数数组 factorialTable 来存储阶乘值。将数组的前两个元素初始化为 1,因为 0 和 1 的阶乘是 1。 步骤 5:使用 for 循环计算并存储从 2 到 n 的阶乘值。在每次迭代中:a.将当前元素 factorialTable[i - 1] 乘以 i。b.取结果的模 100 以仅保留最后两位数字。c.将计算出的值存储在 factorialTable[i] 中。 步骤 6:循环完成后,factorialTable 数组将在 factorialTable[n] 处包含 n! 的最后两位数字。 步骤 7:返回存储在 factorialTable[n] 的值,该值代表 n 的阶乘的最后两位数字。 步骤 8:打印输入 n 和输出 lastTwoDigits 以显示结果。 实施文件名:LastTwoDigitsOfFactorial.java 输出 Last two digits of 8! are: 20 时间复杂度:calculateLastTwoDigits 方法中的主循环从 i = 2 运行到 i <= n,迭代 n - 1 次。因此,代码的时间复杂度为 O(n)。 辅助空间:提供的代码的辅助空间复杂度为 O(n)。这主要是由于用于存储 factorialTable 数组的空间,该数组的大小为 n + 1,用于存储从 0 到 n 的数字的阶乘值。 下一个主题如何在 Java 中获取环境变量 |
AES-GCM(高级加密标准-伽罗瓦/计数器模式)是一种广泛使用的对称密钥加密技术,它具有数据完整性和隐私性两项优势。在本节中,我们将探讨如何在 Java 中使用 AES-GCM 加密。AES-GCM 是一种数据块加密方法,属于 AES 系列。它……
阅读 4 分钟
在编程竞赛中,不仅需要解决问题的能力和技巧,还需要高效解决问题的能力。在 Java 中,以下是一些可以帮助您在时间限制内解决问题时表现更好的技巧和窍门。 1. 检查...
阅读 28 分钟
java.util.Date 类做什么?Java 中的 java.util.Date 类提供日期和时间。如果我们导入 java.util,可能会很有好处。如果我们想在代码中实现这些类,请使用 Java.util.Date 类。此类提供的构造函数和方法允许……
5 分钟阅读
Java 多线程是一项基本功能,它允许开发人员编写可以并发运行在多个线程上的程序。它有助于开发人员创建响应迅速的应用程序并提高软件性能。关于这个主题已经写了很多书,提供了多线程的深入知识...
阅读 4 分钟
在 Java 中,堆栈跟踪就是异常的位置。换句话说,我们可以说堆栈跟踪会“追踪”可能抛出异常的行。在本节中,我们将详细讨论 Java 堆栈跟踪。什么是堆栈跟踪?在 Java 中,...
阅读 2 分钟
在 Java 中,创建异常的测试用例并不困难。Java 的 JUnit 测试工具提供了一种跟踪代码异常处理的方法。我们可以编写测试用例来检查代码是否抛出预期的异常。在...中...
阅读 4 分钟
在本节中,我们将了解如何以对角线顺序打印矩阵。此外,创建一个以对角线顺序打印矩阵的 Java 程序。对角线顺序首先,我们将理解对角线打印顺序。考虑具有 4 行 5 列的以下矩阵。然后...
阅读 3 分钟
用于自定义序列化机制。Java 序列化效率不高。当我们有包含多个属性和属性的臃肿对象时,序列化它们并不好。在这种情况下,外部化会更有效。让我们了解 Java 中的序列化:什么是序列化:...
阅读 4 分钟
Java 是一种流行且通用的编程语言,它提供了多种开发和部署应用程序的方法。创建 Java 程序的两种常见方法是独立应用程序和 Applet。这些方法服务于不同的目的并具有独特的特性。在本节中,我们将探讨独立应用程序和 Applet... ...
阅读 3 分钟
Javac 命令通常用于检查我们的系统是否安装了 Java。当我们的系统未安装 Java 并尝试运行 Javac 命令时,我们会收到 Javac 命令未找到或 Java 未被识别的错误。我们可以...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India