在Java 中不使用陣列反轉整數
您的查詢涉及在不求助於陣列或字串的情況下反轉整數。您在理解以下程式碼片段背後的基本原理時遇到困難:
while (input != 0) { reversedNum = reversedNum * 10 + input % 10; input = input / 10; }
整數反轉原理
要掌握此演算法背後的邏輯,請考慮以下概念:
偽代碼
反轉演算法遵循以下步驟:
工作代碼
這裡是更新版本提供的程式碼可容納大輸入整數並處理可能的溢位:
<code class="java">public int reverseInt(int input) { long reversedNum = 0; long input_long = input; while (input_long != 0) { reversedNum = reversedNum * 10 + input_long % 10; input_long = input_long / 10; } if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) { throw new IllegalArgumentException(); } return (int) reversedNum; }
僅反轉奇數
要只反轉整數中的奇數,您可以實現相同的演算法,但加入條件語句來跳過偶數位。例如:
public int reverseOddDigits(int input) { long reversedNum = 0; long input_long = input; while (input_long != 0) { if (input_long % 2 == 1) { reversedNum = reversedNum * 10 + input_long % 10; } input_long = input_long / 10; } if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) { throw new IllegalArgumentException(); } return (int) reversedNum; }</code>
使用此修改後的程式碼,您現在可以選擇性地反轉輸入整數中的奇數位。
以上是所提供的 Java 程式碼如何在不使用陣列或字串的情況下反轉整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!