首页  >  文章  >  Java  >  如何在 Java 中仅反转整数中的奇数?

如何在 Java 中仅反转整数中的奇数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-03 17:31:03468浏览

How to Reverse Only Odd Numbers in an Integer in Java?

Java:不使用数组反转 Int 值

代码说明:

您提供的代码片段使用 while 循环来反转整数值。它的工作原理如下:

  • ReversedNum 乘法: 变量reversedNum 最初设置为0。在循环的每次迭代中,我们将reversedNum 乘以10 以“移动”现有的值将数字向左反转一位。
  • 输入修改: 我们计算输入 % 10 以提取输入数字的最右边的数字。这为我们提供了要添加到反转数字的数字。
  • 添加到 ReversedNum: 提取的最右边的数字将添加到反转数字以形成反转数字。
  • 输入除法:最后,我们将输入数字除以 10 以删除最右边的数字并继续该过程剩余的数字。

仅反转奇数:

要仅反转给定整数中的奇数,您可以使用以下步骤:

  • 将偶数和奇数数字分离到不同的变量中。
  • 反转使用上述方法计算奇数位。
  • 将反转后的奇数位与原来的偶数位组合起来。

示例代码:

<code class="java">public static int reverseOdd(int input) {
    int even = 0;
    int odd = 0;

    // Separate even and odd digits
    while (input > 0) {
        int digit = input % 10;
        if (digit % 2 == 0) {
            even = even * 10 + digit;
        } else {
            odd = odd * 10 + digit;
        }
        input /= 10;
    }

    // Reverse odd digits
    odd = reverseInt(odd);

    // Combine reversed odd and original even digits
    return even + odd;
}

public static int reverseInt(int input) {
    long reversedNum = 0;
    long input_long = input;

    while (input_long != 0) {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long /= 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) {
        throw new IllegalArgumentException();
    }
    return (int) reversedNum;
}</code>

以上是如何在 Java 中仅反转整数中的奇数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn