ホームページ  >  記事  >  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 への追加: 抽出された右端の数字が 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。