Keith Number in Java2025 年 5 月 5 日 | 阅读 6 分钟 在本节中,我们将学习什么是 Keith 数,并创建 Java 程序来检查给定的数是否是 Keith 数。Keith 数程序在 Java 编码测试中经常出现。 Keith 数一个正 n 位数 X 称为 Keith 数(或重复数字数),如果它排列在一个由其数字生成的特殊数列中。该特殊数列的前 n 项是 X 的数字,其他项则递归地计算为前 n 项的和。例如,197、19、742、1537 等。 Keith 数示例让我们检查数字 742 是否是 Keith 数。 首先,我们将每个数字分开,例如 7、4、2 为了找到上面创建的数列的下一项,我们将这些数字相加(即 7+4+2),得到的结果(13)成为数列的下一项。 现在,数列变为 7、4、2、13 为了找到上面数列的下一项,我们将最后三项相加(即 13+2+4),得到的结果(19)成为数列的下一项。 现在,数列变为 7、4、2、13、19 为了找到上面数列的下一项,我们将最后三项相加(即 19+13+2),得到的结果(34)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34 为了找到上面数列的下一项,我们将最后三项相加(即 34+19+13),得到的结果(66)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34、66 为了找到上面数列的下一项,我们将最后三项相加(即 66+34+19),得到的结果(119)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34、66、119 为了找到上面数列的下一项,我们将最后三项相加(即 119+66+34),得到的结果(219)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34、66、119、219 为了找到上面数列的下一项,我们将最后三项相加(即 219+119+66),得到的结果(404)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34、66、119、219、404 为了找到上面数列的下一项,我们将最后三项相加(即 404+219+119),得到的结果(742)成为数列的下一项。 现在,数列变为 7、4、2、13、19、34、66、119、219、404、742 在这里,我们将停止这个过程,因为我们得到了与数列中的一项相同的数字(742)。因此,给定的数字 742 是一个 Keith 数。 ![]() 从上面的例子中,我们观察到我们需要计算数列的项,直到我们得到与(我们开始时取的)相同的数字作为数列中的一项。 注意:如果给定的数字 (X) 有 n 位数字,我们将递归地加上数列的最后 n 项。由于数字 742 有三位数字,所以我们每次都加上数列的最后三项。让我们看另一个例子。 ![]() 查找 Keith 数的步骤
让我们在 Java 程序中实现上述步骤。 Keith 数 Java 程序逻辑并不复杂。使用前 n 个数字的和来计算数列,其中 n 是数字的位数。如果数列中计算出的一个数字与输入数字相同,那么它就是一个 Keith 数。如果计算出的值大于输入数字,程序就会停止。 让我们创建一个 Java 程序并在其中实现上述逻辑。 KeithNumberExample1.java 输出 Yes, the given number is a Keith number. Yes, the given number is a Keith number. No, the given number is not a Keith number. 让我们创建另一个 Java 程序来查找所有包含相同位数数字的 Keith 数。 KeithNumberExample2.java 输出 1 ![]() 输出 2 ![]() 类似地,我们可以找到 d 位 Keith 数。下表总结了 d 位 Keith 数。
下一主题Java 中验证 IP 地址 |
我们请求您订阅我们的新闻通讯以获取最新更新。