Java 中的 Hogben 数17 Mar 2025 | 4 分钟阅读 在本节中,我们将学习什么是 Hogben 数,并创建 Java 程序来计算Hogben 数。Hogben 数程序经常在 Java 编码面试和学术中出现。 Hogben 数字Hogben 数是递归定义的数字,如下所示: H(n) = H(n - 1) + 2 * (n - 1),其中 n >= 1 且 H(0) = 1。 因此, H(1) = H(1 - 1) + 2 * (1 - 1) = H(0) + 2 * 0 = 1 + 0 = 1 H(2) = H(2 - 1) + 2 * (2 - 1) = H(1) + 2 * 1 = 1 + 2 = 3 H(3) = H(3 - 1) + 2 * (3 - 1) = H(2) + 2 * 2 = 3 + 4 = 7 H(4) = H(4 - 1) + 2 * (4 - 1) = H(3) + 2 * 3 = 7 + 6 = 13 H(5) = H(5 - 1) + 2 * (5 - 1) = H(4) + 2 * 4 = 13 + 8 = 21 让我们看看计算 Hogben 数的不同方法。 方法:递归让我们看看用于计算前 10 个 Hogben 数的递归方法。 文件名: HogbenNum.java 输出 The first 10 Hogben numbers are: 1 3 7 13 21 31 43 57 73 91 复杂度分析:程序的时间复杂度为 O(n),其中 n 是第 n 个数字。程序空间复杂度为常数,即 O(1)。 方法:迭代让我们看看用于计算前 10 个 Hogben 数的迭代方法。 文件名: HogbenNum1.java 输出 The first 10 Hogben numbers are: 1 3 7 13 21 31 43 57 73 91 复杂度分析:程序的时间复杂度为 O(1)。程序空间复杂度为常数,即 O(n),其中 n 是要计算的 Hogben 数的总数。 当前的 Hogben 数仅取决于最后一个计算出的 Hogben 数的值。因此,我们可以使用一个变量来计算 Hogben 数,而不是使用数组。请看下面的程序。 文件名: HogbenNum2.java 输出 The first 10 Hogben numbers are: 1 3 7 13 21 31 43 57 73 91 复杂度分析:程序的时间复杂度和空间复杂度均为 O(1)。 方法:使用数学公式计算 Hogben 数的数学公式是: H(n) = n2 - n + 1,其中 n >= 1 因此, H(1) = 12 - 1 + 1 = 1 - 1 + 1 = 1 H(2) = 22 - 2 + 1 = 4 - 2 + 1 = 3 H(3) = 32 - 3 + 1 = 9 - 3 + 1 = 7 H(4) = 42- 4 + 1 = 16 - 4 + 1 = 13 H(5) = 52 - 5 + 1 = 25 - 5 + 1 = 21 实施 下面的程序使用了上述数学公式。 文件名: HogbenNum3.java 输出 The first 10 Hogben numbers are: 1 3 7 13 21 31 43 57 73 91 复杂度分析:程序的时间复杂度和空间复杂度均为 O(1)。 下一个主题Java 中的自描述数字 |
在 Java 中,内存管理和垃圾回收是维持最佳性能和避免内存泄漏的关键方面。与 Java 的垃圾回收机制相关的有趣概念是孤岛。这个术语指的是一组相互引用但...
阅读 4 分钟
Java 模式程序可以增强编码技能、逻辑和循环概念。它通常在 Java 面试中被问到,以检查程序员的逻辑和思维。我们可以用不同的设计打印 Java 模式程序。要学习模式程序,我们必须具备……
阅读 13 分钟
格里高利历仍然是当今使用最广泛的历法。它取代了自公元前 45 年以来一直在使用的儒略历,并于 1582 年由教皇格里高利十三世采用。格里高利历是阳历,这意味着它...
阅读 2 分钟
层次继承是 Java 中一种继承类型,其中单个父类(基类)拥有多个子类。每个子类独立继承父类的属性和行为。在下图中,类 A 是基类,类...是子类。
5 分钟阅读
在本节中,我们将学习什么是 Peterson 数,以及如何通过 Java 程序检查给定的数字是否为 Peterson 数。Peterson 数 如果一个数字的每个数字的阶乘之和等于该数字本身,则称该数字为 Peterson 数...
阅读 2 分钟
该类型是一种基本数据类型。它是一种单精度32位IEEE 754浮点数。它用于声明变量和方法。它表示小数。要点:float的范围是从1.40129846432481707e-45到3.40282346638528860e+38(正或负)。它的默认值是...
阅读 2 分钟
在 Java 中,Robot 是一个属于 java.awt 包的类。它还扩展了 Object 类。该类用于为测试自动化、自运行演示和其他需要控制鼠标和键盘的应用程序生成本地系统输入事件……
阅读 4 分钟
在 Java 中,“finalisation”一词描述了对象在被垃圾回收之前所经历的清理过程。来自 java.lang.Object 类的 finalize() 函数使此过程更容易。子类应重写 finalize() 方法以释放资源...
5 分钟阅读
Java 是一种通用且广泛使用的编程语言,它为构建各种数据结构和类提供了坚实的基础。在本节中,我们将深入探讨一个名为 Cint 的自定义类,它表示一个可比较的整数,并提供额外的比较操作功能。Java Cint 类 Java Cint...
5 分钟阅读
在本节中,我们将讨论如何在 Java 中显示二进制矩阵中的唯一行。在此问题中,给定一个二进制矩阵,我们需要识别并打印给定二进制矩阵的唯一行。示例 1:说明:在上面的输入中……
21 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India