Java 数字反转程序详解

在 Java 中,反转数字意味着将第一位与最后一位交换,第二位与倒数第二位交换,依此类推,直到到达中间元素。

反转数字示例:

> 输入: n = 357

> 输出: 753

>

> 输入: n = 100

> 输出: 1 (不考虑前导零)

注意: 反转后的前导零将不会被保留(即反转 100 后会变成 001 ≈ 1)。

Java 中反转数字的算法

要反转一个数字,我们应该执行以下步骤:

  • 将数字对 10 取模。
  • 将反转后的数字乘以 10,并将模值加到反转后的数字中。
  • 将数字除以 10。
  • 重复上述步骤,直到数字变为零。

在 Java 中反转数字的方法

我们可以使用以下三种主要方法在 Java 中反转数字:

  • 使用 While 循环
  • 使用递归
  • 使用 StringBuilder 类

1. 使用 While 循环

只需应用上述讨论的步骤/算法,并在数字变为零时终止循环。

示例:

Java


CODEBLOCK_bc331827

Output

Reversed Number is: 6254

#### 上述方法的复杂度:

> 时间复杂度: 对于给定的数字 n,为 O(log10n)

> 辅助空间: O(1)

2. 使用递归

在递归中,最终的反转值将存储在一个全局变量 ‘rev‘ 中。请遵循以下说明。

  • 如果数字变为零,则终止递归,这将是基本条件。
  • 取模值并将其与 ‘rev*10‘ 的乘积相加。
  • 将数字除以 10,并在将其更新为 number/10 后,对其调用反转函数。

示例:

Java


CODEBLOCK_e3479054

Output

Reversed Number is: 6254

#### 上述方法的复杂度:

> 时间复杂度: O(logn),其中 n 是数字

> 辅助空间: O(logn)

3. 使用 StringBuilder 类

在这种方法中,我们将使用 StringBuilder 类来反转数字。我们将使用 StringBuilder 的 reverse() 方法。

示例:

Java


CODEBLOCK_796c56de

Output

654321

上述方法的复杂度:

> 时间复杂度: O(ln)

> 辅助空间: O(n)

请参阅完整文章以获取更多信息 – 编写一个程序来反转数字的数位

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/45843.html
点赞
0.00 平均评分 (0% 分数) - 0