Java 中的 Fibodiv 数2024年9月10日 | 阅读 6 分钟 一个数字 N,它可以被分成两部分 f1 和 f2,使得如果我们取 f1 和 f2 作为斐波那契数列的前两项,那么斐波那契数列中的某一项就是数字 N 本身。让我们通过一些例子来理解它。 示例 1 N = 14 这里,数字 14 可以被分成两部分,1 和 4。所以,斐波那契数列的前两项是 f1 = 1 和 f2 = 4。因此,数列变成 1, 4, 5 (1 + 4), 9 (4 + 5), 14 (5 + 9), 23 (9 + 14) 上面的数列包含数字 14。因此,14 是一个 fibodiv 数字。 示例 2 N = 15 这里,数字 15 可以被分成两部分,1 和 5。所以,斐波那契数列的前两项是 f1 = 1 和 f2 = 5。因此,数列变成 1, 5, 6 (1 + 5), 11 (5 + 6), 17 (6 + 11), 28 (11 + 17) 上面的数列不包含数字 15。因此,15 不是一个 fibodiv 数字。 示例 3 N = 1292 这里,数字 1292 可以被分成两部分 129 和 2。所以,斐波那契数列的前两项是:f1 = 129 和 f2 = 2。因此,数列变成 129, 2, 131 (129 + 2), 133 (2 + 131), 264 (131 + 133), 397 (133 + 264), 661 (264 + 397), 1058 (397 + 661), 1719 上面的数列不包含数字 1291。现在,我们将 1292 分成另外两部分 12 和 92。所以,斐波那契数列的前两项是:f1 = 12 和 f2 = 92。因此,数列变成 12, 92, 104 (12 + 92), 196 (92 + 104), 300 (104 + 196), 496 (196 + 300), 796 (300 + 496), 1292 (496 + 796)。因此,1292 是一个 Fibodiv 数字。 算法步骤 1:取一个数字 N。 步骤 2:将数字分成两部分,分别为 f1 和 f2,使得当我们把 f2 和 f1 连接起来时,得到数字 N。 例如:59 可以分成 5(f1 = 5)和 9(f2 = 9)。当我们把 9 附加到 5 后面时,我们得到数字 59。 步骤 3:将 f1 和 f2 作为斐波那契类数列的前两项。 步骤 4:通过将 f1 和 f2 相加来计算下一项(称为 f3),然后更新 f1 和 f2。F1 取 f2 的值,f2 取 f3 的值。 步骤 5:重复步骤 4,直到下一项 f3 超过数字 N,或者 f3 等于 N。 步骤 6:如果 f3 等于 N,则 N 是一个 Fibodiv 数字;否则,对不同的 f1 和 f2 值重复步骤 2(参见示例 3)。如果无法将数字 n 除以唯一的 f1 和 f2 值,则 n 不是 Fibodiv 数字。 Fibodiv 数字 Java 程序让我们使用上面提到的算法来实现拔河问题。 使用迭代文件名: FibodivNumber.java 输出 14 is a Fibodiv number. 19 is a Fibodiv number. 28 is a Fibodiv number. 47 is a Fibodiv number. 61 is a Fibodiv number. 75 is a Fibodiv number. 使用递归文件名: FibodivNumber1.java 输出 14 is a Fibodiv number. 19 is a Fibodiv number. 28 is a Fibodiv number. 47 is a Fibodiv number. 61 is a Fibodiv number. 75 is a Fibodiv number. 下一主题Java 中的心形图案 |
在 Java 中,“绑定”一词描述了 Java 编译器将对方法或函数在语句主体中的调用的关联方式。简单来说,绑定就是 Java 编译器在调用时查找适当方法的过程...
阅读 4 分钟
在 Java 中,下界的概念通常与 lower_bound() 方法相关联,该方法经常用于算法中查找数组中大于或等于指定键的第一个元素的索引。这在...时尤其有用
阅读 6 分钟
如何在 Java 中返回数组?在 Java 中,有几种方法可以从 方法返回数组,每种方法都有其优点和用例。这些 方法可大致分为静态数组、动态创建的数组、子数组和使用 Java Streams 生成的数组。首先,...
阅读 16 分钟
Java 中 Array 和 ArrayList 之间的区别 Array 和 ArrayList 是众所周知的。数组是 Java 提供的基本功能,而 ArrayList 是 Java Collections 框架的一个类。它属于 java.util 包。Java 数组数组是一个动态创建的对象。它用于...
阅读 3 分钟
String 类的 regionMatches() 方法有两种变体,可用于测试两个字符串区域是否匹配或相等。此方法有两种变体,即一种忽略大小写,另一种区分大小写。regionMatches() 方法用于...
阅读 4 分钟
Java 是一种著名的计算机语言,已经使用了二十多年。有几个关键功能使开发人员能够构建高效且优雅的代码。例如,List sort() 函数用于按升序或降序对 List 进行排序。在本...
阅读 4 分钟
Boyer-Moore算法是Robert S. Boyer和J Strother Moore于1977年开发的一种字符串搜索或匹配算法。它是一种广泛使用且最高效的字符串匹配算法。它比蛮力算法快得多。在本节中,我们将讨论...
阅读 12 分钟
绳索的最小成本是计算机科学和竞争性编程中的一个经典问题。它基于合并绳索以最小化总成本的概念。想象一下,你有几根不同长度的绳索,需要将它们合并成一根...
阅读 8 分钟
给定一个矩阵,我们的任务是检查该矩阵是否为对合矩阵。对合矩阵:如果一个矩阵与其自身相乘生成单位矩阵,则该矩阵称为对合矩阵。与其自身是其逆的矩阵称为对合矩阵。如果...
阅读 4 分钟
在 Java 中,问号 (?) 被视为或识别为通配符。Java 中通配符的主要用途是表示未知类型。在 Java 的各种场景或情况下,通配符可以用作参数、字段、...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India