Java 中的 Strobogrammatic 数2025年3月17日 | 阅读 3 分钟 在本节中,我们将学习什么是可旋转数,并创建 Java 程序来检查给定的数字是否是可旋转数。Java 可旋转数程序经常出现在 Java 编码面试和学术中。 可旋转数,一个有趣的数学概念,具有独特的性质:旋转 180 度后,它们看起来相同。简而言之,它们有意地读起来相同,例如数字 0、1、8、11、69。分析和理解这些数字不仅探索了数学问题,还提供了程序上的挑战,这也很有趣。 可旋转数可旋转数是旋转后不变的数值回文。它们是对称的并具有反射性。例如,数字 69 保持不变,在旋转 180 度后变成 96。它在 **OEIS** 序列 **A000787** 中定义,而 **可旋转素数**在 OEIS 序列 **A007597** 中定义。 ![]() 可旋转数示例前几个可旋转数是:0、1、8、11、69、88、96、101、111、181、609、619、689、808、818、888、906、916、986、1001、1111、1691、1881、1961、6009、6119、6699、6889、6969、8008、8118、8698、8888、8968、9006、9116、9696、9886、9966,…… 查找可旋转数查找可旋转数的方法是,首先,我们确定每个数字在旋转 180 度后会变成什么。每个数字有三种可能性。 要么数字无效,要么保持不变,要么变成不同的数字。 当一个数字旋转 180 度后仍然是一个有效数字时,我们就认为它是可旋转的。如果我们观察数字,我们会发现 0、1、6、8、9 是可旋转的,因为它们是有效数字。因此,如果数字包含除这些之外的任何数字,我们就可以说它不是可旋转数。对于其他数字,我们需要检查它们的旋转是否与其对应位置的数字相同。 让我们在 Java 程序中实现上述方法。 Java 可旋转数程序在 Java 中,我们探索如何系统地学习可旋转数。一种方法是列出所有可能的在一个长度内的可旋转数,并检查每个数字是否属于这个集合。 文件名:StrobogrammaticNumbers.java 输出 Strobogrammatic numbers of length 3: [101, 609, 808, 906, 111, 619, 818, 916, 181, 689, 888, 986] 解释 findStrobogrammatic() 方法生成长度为 n 的所有可旋转数。 findStrobogrammaticHelper() 方法通常返回可旋转数。 我们遍历中间数字,并添加两个反射数字来创建可旋转数。 复杂度 时间复杂度:O(n) 空间复杂度: O(1) 结论可旋转数因其有趣的性质,为数学和组织结构提供了迷人的见解。在 Java 中,我们可以使用递归方法来查找和优化这些数字。将可旋转数添加到我们的编程工具库中,不仅可以提高我们的问题解决能力,还可以为我们的代码增添一点数学的优雅。进一步探索,尝试不同的技术,并在你的 Java 项目中拥抱可旋转数的美。 下一个主题Java 的 5 种类型 |
这是原始数据类型。它用于声明字符类型的变量和方法。它能够存储无符号的 16 位 Unicode 字符。要点:char 的范围在 0 到 65,535(含)之间。它的默认值为“\u0000”。它的默认大小为 2...
阅读 2 分钟
确定给定三个整数 a、b 和 c 的最长快乐字符串。如果存在多个最长快乐字符串,则返回其中任何一个。如果不存在这样的字符串,则返回空字符串“”。快乐字符串是指...
阅读9分钟
螺旋式遍历矩阵是指以圆形模式遍历元素,从左上角开始,沿着顶行向右移动。在每次行或列遍历之后,调整边界,并切换方向,持续进行,直到所有元素...
阅读 10 分钟
Java 字节码是 JVM 理解的 Java 代码指令集。Java 程序编译后,会为其代码生成字节码。简单来说,Java 字节码就是 .class 文件形式的机器码。用...
5 分钟阅读
它是数学和计算机科学中最著名的数列之一,斐波那契数列。从 0 和 1 开始,系列中的每一项都是前两项的总和,给出一个通常看起来像:0、1、1、2、3、5、...的系列。
阅读 4 分钟
在 Java 中,将数据从一个文件复制到另一个文件是一个非常简单的过程。我们使用 File、FileInputStream 和 FileOutputStream 类来复制数据。在实现代码之前,让我们逐一了解这三个类。File File 类用于创建实例...
阅读 3 分钟
java.util 包包含 IntSummaryStatistics 类。在对整数流执行操作时,它接受 Integer 对象集合,并且可能非常有效。它跟踪已处理的数字数量、它们的总和以及...
阅读 3 分钟
数组排列 判断数组 A 是否为排列,需要确保它只包含从 1 到 n 的每个数字一次,并且不包含任何重复元素。这确认了数组是一个完整且有效的序列。数组排列示例 示例 1: 输入:arr[] = {4,...
11 分钟阅读
图像处理是数字媒体和内容管理部门的一个主要领域,其应用范围从简单的照片编辑到高级计算机视觉任务。图像处理中的一个典型应用是水印:将可识别的徽标、文本或图像叠加在...
7 分钟阅读
ClassLoader 在 Java 中是一个抽象类。它属于 java.lang 包。它从不同的资源加载类。在运行时用于加载类。换句话说,JVM 在运行时执行链接过程。类被加载到 JVM 中...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India