Java 中的七段显示问题2025年3月17日 | 阅读 7 分钟 七段显示器是一种输出显示设备。它提供了一种以图像、文本或十进制数字形式显示信息的方式。它是复杂点阵显示器的替代品。七段显示器广泛应用于计算器、手表、游戏机、电子仪表等数字或电子设备中。在本节中,我们将讨论如何在 Java 中以七段显示器表示数字。 ![]() 什么是七段显示器?它是一种显示设备,通过使用七个 LED 段(水平和垂直条)来形成数字,看起来像数字 8。这些七个段可以形成从 0 到 9 的任何数字。例如,请看下图。 七段显示器的工作原理下表描述了数字和对应的段代码,其中 0 表示无电源,1 表示有电源。
我们观察到表示一个数字所需的最小段数为 2。 ![]() 在继续解决方案之前,我们首先将看到显示七段数字的 Java 程序。 在 Java 中以七段形式表示数字的程序有两种方法可以以七段形式打印数字
使用 switch-case这是以七段显示器形式打印数字的简单方法。在以下 Java 程序中,我们从用户读取一个数字并切换到相应的 case,该 case 将数字打印为七段显示器。 DisplaySevenSegment.java 输出 1 ![]() 输出 1 ![]() 让我们看看另一种在七段显示器中打印数字的方法。 使用十六进制编码在以下 Java 程序中,我们使用十六进制编码来以七段形式表示数字。下表描述了相同的内容。在表中,on 表示 1,off 表示 0。 ![]() 让我们在 Java 程序中实现上述逻辑。 DisplayDigitSevenSegment.java 输出 ![]() 问题陈述该问题分为以下两个子问题。
让我们逐一讨论子问题。 子问题 1我们给定一个 N 位数字,我们必须找到显示每个数字所需的最小段数。将所有段加起来并返回显示 N 位数字的总段数。 示例 假设,N=6(数字位数)且 s="234567"。 表示数字 2 所需的最小段数为 5。 表示数字 3 所需的最小段数为 5。 表示数字 4 所需的最小段数为 4。 表示数字 5 所需的最小段数为 5。 表示数字 6 所需的最小段数为 6。 表示数字 7 所需的最小段数为 3。 因此,我们所需的总段数为 28 (5 + 5 + 4 + 5 + 6 + 3)。 让我们在 Java 程序中实现上述方法。 SegmentSum.java 输出 ![]() 子问题 2在这个问题中,我们给定一个自然数数组。任务是找出哪个自然数使用最少段数来显示该数字。可能存在多个自然数具有最少段数的情况,在这种情况下,输出将是索引最小的数字。 例如,考虑以下数组。 arr[] = {22, 46, 88, 12, 67, 90, 23, 55, 61} 22 -> 5+5 = 10 46 -> 4+6 = 10 88 -> 7+7 = 14 12 -> 2+5 = 7 67 -> 6+3 = 9 90 -> 6+6 = 12 23 -> 5+5 = 10 55 -> 5+5 = 10 61 -> 5+5 = 8 我们观察到数字 12 使用最少的段数来显示该数字。因此,输出将是 12。 在七段显示器中查找使用最少段数的元素的 Java 程序在以下 Java 程序中,我们存储了每个数字的段数。之后,我们定义了两个函数,一个计算数字的段数,第二个函数计算整个数字的最小段数。之后,我们将每个数字的段数相互比较,并返回使用最少段数的数字。 让我们看看相应的 Java 程序。 SevenSegment.java 输出 12 复杂度 上述方法的时间复杂度为 O(n * log10n),空间复杂度为 O(1)。 下一个主题Java 中的拆分数组最大和 |
我们请求您订阅我们的新闻通讯以获取最新更新。