Java 程序在不使用 / 和 % 运算符的情况下检查数字是否为 5 的倍数2025年5月13日 | 阅读 4 分钟 给定一个数字 n。任务是检查一个数字是否是 5 的倍数,而不使用除法 (/) 或模数 (%) 运算符。 示例 1 输入 30 输出: 30 是 5 的倍数:true 解释: 30 的最后一位数字是 0,所以它是 5 的倍数。 示例 2 输入 17 输出: 17 是 5 的倍数:false 解释: 17 的最后一位数字是 7,不是 0 或 5,所以它不是 5 的倍数。 示例 3 输入 125 输出: 125 是 5 的倍数:true 解释: 125 的最后一位数字是 5,所以它是 5 的倍数。 方法 1:使用重复减法该方法通过从给定的数字中反复减去 5 来确定该数字是否是 5 的倍数。如果数字最终减少到 0,则它是 5 的倍数;否则,不是。 算法步骤 1: 将数字转换为其绝对值,以处理负数。 步骤 2: 反复从数字中减去 5,直到它小于 5。 步骤 3: 如果剩余值为 0,则返回 true(它是 5 的倍数);否则,返回 false。 输出 25 is a multiple of 5: true 复杂度时间复杂度: 程序的 O(n) 时间复杂度。因为我们反复减去 5,所以对于较大的 n,循环大约运行 n/5 次。 空间复杂度: 程序的 O(1) 空间复杂度。因为除了几个整数变量外,没有使用额外的空间。 方法 2:使用乘法和减法该方法通过从 0 开始迭代并将结果乘以 5,直到我们达到给定的数字或超过它,来检查一个数字是否是 5 的倍数。如果我们找到匹配项,则该数字是 5 的倍数;否则,不是。 算法步骤 1: 取数字的绝对值以处理负数情况。 步骤 2: 初始化 x = 0。 步骤 3: 使用循环来计算 5 * x 并检查它是否等于 n。 步骤 3.1: 如果 5 * x == n,则返回 true。 步骤 3.2: 如果 5 * x 大于 n,则返回 false。 步骤 3.3: 否则,递增 x 并继续。 输出 20 is a multiple of 5: true 复杂度时间复杂度: 程序的 O(n) 时间复杂度。因为我们迭代一个循环来计算。 空间复杂度: 程序的 O(1) 空间复杂度。因为除了几个整数变量外,没有使用额外的空间。 方法 3:将数字转换为字符串并检查最后一位数字该方法将给定的数字转换为字符串,并检查最后一位数字是否是 0 或 5。因为是 5 的倍数的数字最后一位总是 0 或 5。 算法步骤 1: 将数字转换为其绝对值(以处理负数)。 步骤 2: 将绝对值转换为字符串。 步骤 3: 使用 charAt(length - 1) 提取最后一位数字。 步骤 4: 如果最后一位数字是 '0' 或 '5',则返回 true;否则,返回 false。 输出 20 is a multiple of 5: true 复杂度时间复杂度: 程序的 O(n) 时间复杂度。因为我们使用字符串转换,而检查最后一位数字是快速操作。 空间复杂度: 程序的 O(1) 空间复杂度。因为只使用了一个字符串和一个字符变量。 下一个主题Java 8 过滤器 |
在 Java 中,将语句打印到控制台是编程的一个基本方面。System.out 对象代表标准输出流,提供了几种方法来高效地完成此任务。在本节中,我们将探讨 Java 中用于打印的各种可用方法,以及...
阅读 4 分钟
线程是正在执行的程序,用于执行特定任务。Java 线程的生命周期从其诞生开始,到其消亡结束。Thread 类的 start() 方法用于启动线程的执行,它会……
5 分钟阅读
Java 中的堆实现 Java 中的堆是一种特殊的数据结构,其中根节点或父节点与左子节点和右子节点进行比较并按顺序排列。假设 x 是一个根节点,y 是一个子节点...
21 分钟阅读
在 Java 中,我们使用 Calendar 抽象类来处理日期和时间。它有几个有用的接口,允许我们在特定时间点和一组日历字段(如 DAY、MONTH、YEAR、HOUR 等)之间转换日期。 ...
阅读 3 分钟
在过去的几年里,Python 取得了巨大的进步。超过八百万开发人员使用 Java 来开发应用程序。这两种语言都能够执行几乎所有的任务。现在,让我们简要介绍这两种语言,然后理解 Python 相对于...
阅读 3 分钟
Java 中的 FileDescriptor 类是 java.io 包的一部分,它作为访问底层系统资源以进行输入输出操作的句柄。它代表一个打开的文件、一个套接字或其他字节源/汇。以下是详细说明……
阅读 4 分钟
MessageDigest 是哈希函数的返回值,也称为哈希值。哈希函数主要用于每个信息安全应用程序。哈希函数用于将数值转换为压缩数值。对于哈希函数,长度为...
阅读 3 分钟
场景 1:缓存 您需要从数据库加载股票交易所证券代码及其价格,并将其缓存以提高性能。证券代码需要每 30 分钟刷新一次。此缓存数据需要由单个写入线程填充和刷新,并且……
阅读 19 分钟
在 Java 中比较字符串时,了解 == 运算符和 .equals() 方法之间的区别非常重要。在 Java 中,字符串是一个对象,比较对象需要考虑您是想比较它们的引用(内存地址)还是它们的实际内容。== 运算符...
5 分钟阅读
正在考虑的问题是指确定二叉树中任何路径上节点值的最大乘积。路径被认为是 starting from a particular node to any other node in...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India