> Java > java지도 시간 > 본문

일반적인 인터뷰 질문: Java에서 임시 변수 없이 두 숫자 바꾸기

DDD
풀어 주다: 2024-10-03 20:08:30
원래의
817명이 탐색했습니다.

Common Interview Question: Swapping Two Numbers Without a Temporary Variable in Java

두 숫자를 바꾸는 것은 프로그래밍 인터뷰에서 흔히 볼 수 있는 작업이며, 이를 달성하는 방법은 다양합니다. 한 가지 흥미로운 방법은 임시 변수를 사용하지 않고 두 숫자를 바꾸는 것입니다. 이 기술은 영리할 뿐만 아니라 Java의 산술 연산을 이해하는 데에도 도움이 됩니다. 이 기사에서는 이 방법을 살펴보고 샘플 코드 구현을 제공합니다.

개념 이해

임시 변수 없이 두 숫자를 바꾸는 아이디어는 기본적인 산술 연산을 기반으로 합니다. 핵심 아이디어는 덧셈과 뺄셈을 사용하여 교환을 수행하는 것입니다. 작동 방식은 다음과 같습니다.

  1. 두 숫자를 더하고 변수 중 하나에 결과를 저장합니다.
  2. 합계에서 두 번째 숫자를 빼서 두 번째 변수의 첫 번째 숫자를 구합니다.
  3. 합계에서 두 번째 변수의 새 값을 빼서 첫 번째 변수의 첫 번째 숫자를 얻습니다.

코드 구현

다음은 이 방법을 보여주는 간단한 Java 프로그램입니다.

package basics;

public class SwapTwoNumbersWithoutTemp {

    private void swapNumbers(int a, int b) {
        a = a + b; // Step 1: a becomes the sum of a and b
        b = a - b; // Step 2: b becomes the original value of a
        a = a - b; // Step 3: a becomes the original value of b

        System.out.println("a = " + a + " b = " + b);
    }

    public static void main(String[] args) {
        SwapTwoNumbersWithoutTemp swap = new SwapTwoNumbersWithoutTemp();
        swap.swapNumbers(5, 6);
    }
}
로그인 후 복사

코드 설명

  1. 메서드 정의: swapNumbers(int a, int b) 메소드는 두 개의 정수 매개변수를 사용합니다.
  2. 1단계: a = a b; — 두 숫자를 모두 더하고 결과를 a에 저장합니다.
  3. 2단계: b = a - b; — 이는 a의 원래 값을 b에 효과적으로 할당합니다.
  4. 3단계: a = a - b; — 마지막으로 b의 원래 값을 a에 할당합니다.
  5. 출력: 교체된 값이 콘솔에 인쇄됩니다.

결론

임시 변수 없이 두 숫자를 바꾸는 것은 인터뷰에서 자주 묻는 효율적이고 영리한 기술입니다. 이 방법은 메모리를 절약할 뿐만 아니라 기본 산술 연산에 대한 이해도를 보여줍니다. 특히 인터뷰 준비 시 코딩 도구 상자에 큰 도움이 될 수 있습니다.

이 코드를 자유롭게 실험하고 다양한 숫자 쌍을 테스트하여 메서드가 어떻게 작동하는지 확인하세요!

관련 게시물

  • Java 기초: 데이터 유형

  • Java 프로그래밍에 대한 더 많은 팁과 통찰력을 얻으려면 Array Interview Essentials 시리즈를 확인하세요.

즐거운 코딩하세요!

위 내용은 일반적인 인터뷰 질문: Java에서 임시 변수 없이 두 숫자 바꾸기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿