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 중국어 웹사이트의 기타 관련 기사를 참조하세요!