Autobiographical Number in Java2025年5月5日 | 阅读 4 分钟 在本节中,我们将学习什么是自传数,并创建Java 程序来检查给定的数字是否是自传数。Java 编码测试中经常会问到自传数程序,以测试程序员的逻辑能力。 自传数一个数字计数精确地说明了数字 0 到 9 在数字中出现的频率。换句话说,一个数字是一个浮夸而自私的数字,它存在的唯一目的是描述自己。 我们可以正式地将自传数定义为 一个自传数是一个数字(N),使得 N 的第一个数字统计 N 中有多少个零,第二个数字统计 N 中有多少个一,第三个数字统计 N 中有多少个二,依此类推。有时,它也被称为奇数。它是 OEIS A046043 序列。 它就像自描述素数,它使用不同的方法 OEIS A108810 来描述自描述素数。两者唯一的区别在于,在自传数中,数字以递增顺序描述,而自描述素数的数字可以以任何顺序描述。 只有一个数字10213223描述了它自己。我们观察到 0 的频率是 1,1 的频率是 2,2 的频率是 3,3 的频率是 2。因此,10213223是唯一一个描述自己的数字。最小的自传数是1210。 自传数示例假设,我们要检查数字21200是否是自传数。 首先,找出其数字之和 (2+1+2+0+0),即 5,并计算给定数字的位数,即 5。我们观察到两者相等。因此,数字 21200 是一个自传数。 注意:上面讨论的方法仅在数字之和小于 10 时才有效。让我们再看一个数字1210。它有 1 个零,2 个一,1 个二和 0 个三。因此,数字 21200 是一个自传数。 上述方法适用于所有数字。 一些自传数有:1210, 2020, 21200, 3211000, 42101000, 521001000, 6210001000. 查找自传数的步骤对于数字中存在的每个从 0 到 9 的数字,写下该数字的频率,然后是该数字。写下频率和数字后,我们得到的数字称为自传数。 让我们使用放大方法找出所有自传数。
现在我们将根据 1 的数量以三种不同的方式使用放大方法。在本节中,我们只考虑数字中没有 1 的情况。
让我们在 Java 程序中实现上述逻辑。 自传数 Java 程序AutobiographicalNumberExample.java 输出 1 Enter the number you want to check: 1210 1210 is an Autobiographical Number. 输出 2 Enter the number you want to check: 2120001 2120001 is not an autobiographical number. 下一主题Java 中的回文分割字符串 |
我们请求您订阅我们的新闻通讯以获取最新更新。