JavaRush /Java Blog /Random-KO /Java에서 지수화하는 방법

Java에서 지수화하는 방법

Random-KO 그룹에 게시되었습니다
안녕하세요! 인터넷 검색을 하거나 포럼에 도움을 요청하는 것은 숙련된 프로그래머에게도 흔한 일입니다. 하지만 개발에는 너무나 기본적이고 단순해서 초심자라도 알아야 할 주제들이 있습니다. 그리고 여기에 그 주제 중 하나가 있습니다. 오늘은 Java에서 지수 연산이 수행되는 방법에 대해 이야기하겠습니다. Java에서 지수 계산을 수행하는 방법 - 1당신에게 임무가 주어졌다고 잠시 상상해 봅시다. 어느 정도 숫자를 찾는 것입니다. 매우 간단해 보이지만 솔루션을 구현하는 방법은 무엇입니까? 가장 일반적인 방법과 몇 가지 대안을 살펴보겠습니다. 그리고 해결책에 대해 "깊이 살펴보기" 전에 먼저 숫자를 거듭제곱하는 것이 무엇인지 기억해 봅시다. Java에서 지수 계산을 수행하는 방법 - 2거듭제곱하는 것은 하나의 숫자에 여러 번 곱해지는 동작입니다. 곱해지는 수를 밑수, 곱해지는 횟수를 지수라고 합니다. 음, 이러한 밑수 자체 곱셈의 결과를 지수화라고 합니다. 예를 들어 8의 경우 2x2x2=8이므로 2의 3제곱입니다. 숫자의 2승은 인수를 2배로 한다는 의미이며, 일반적으로 이 거듭제곱을 제곱승이라고 합니다. 즉, 4 제곱 = 4x4 = 16입니다. 따라서 우리는 메모리를 새로 고쳤으며 이제 Java에서 pow를 사용하는 방법, 즉 지수화 방법으로 직접 이동합니다.
  1. 수학 펑

    이 문제를 해결하는 가장 쉬운 방법은 Math 클래스를 사용하는 것입니다. 이것이 대부분의 경우에 사용하게 될 솔루션입니다.

    Как выполнить возведение в степень в Java - 3

    Math 클래스에는 삼각법, 기하학 및 기타 수학 측면과 관련된 메서드가 포함되어 있습니다. 여기서 메소드는 정적으로 구현되므로 클래스 객체를 생성하지 않고도 Math 클래스의 이름을 통해 즉시 호출할 수 있습니다.

    지수화는 어떻게 생겼나요?

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Math 클래스의 이 메서드는 double 유형의 값을 반환하기 때문에 유형 캐스트(int)를 사용해야 했습니다(인수도 double이지만 암시적 유형 캐스트가 사용됩니다).

    그리고 지금 - 보너스: 추가 옵션.

  2. 숫자의 제곱의 값

    아마도 가장 간단한 것부터 시작해 보겠습니다.

    제곱 방법은 다음과 같이 작성됩니다.

    public static int pow(int value){
       return value*value;
    }

    기본으로 전화하세요:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    그게 전부입니다. 복잡하거나 불필요한 것은 없습니다.

  3. 힘에 대한 숫자

    그러나 제곱수가 우리에게 필요한 전부는 아닙니다. 대부분의 작업에서는 어느 정도 숫자가 필요하므로 다음은 약간 더 복잡한 버전이지만 사용자 정의 Java pow 값을 사용합니다.

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    알고리즘은 매우 간단합니다. 시작점 결과를 설정한 다음 powValue가 있는 루프가 실행되는 횟수(powValue 횟수)만큼 값을 곱합니다.

  4. 재귀

    다음 방법은 좀 더 이국적이지만 그다지 멋지지는 않습니다.

    Как выполнить возведение в степень в Java - 4

    재귀는 메소드가 자신을 호출할 수 있도록 하는 기능입니다. Java에는 이러한 메커니즘이 존재하므로 이러한 메서드를 재귀적이라고 합니다.

    전부는 아니더라도 많은 알고리즘 문제를 재귀적으로 해결할 수 있습니다. 이것도 예외는 아니므로 재귀적인 방식으로 숫자를 특정 거듭제곱으로 높이는 방법을 살펴보겠습니다.

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    보시다시피 두 가지 경우가 있습니다.

    1. 재귀를 종료하기 위한 조건, 즉 학위 값이 1에 도달하면 뒤로 물러나기 시작합니다.
    2. powValue - 1을 사용하여 동일한 메서드를 호출한 결과에 value를 곱하는 메커니즘 자체입니다.

    자, 이제 게으른 방법, 즉 "즉시 사용 가능한" 방법을 살펴볼 차례입니다.

  5. 빅정수

    BigInteger 클래스의 주요 목적은 임의 크기의 정수를 저장하는 것이지만 동시에 이러한 큰(또는 그리 크지 않은) 숫자로 작업할 수 있는 다양한 산술 메서드도 있습니다.

    Как выполнить возведение в степень в Java - 5

    이 기사 에서 BigInteger에 대한 자세한 내용을 읽을 수 있습니다 .

    그렇다면 Java에서 BigInteger를 사용하면 지수화는 어떻게 될까요?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    아주 간단하고 문제도 없지 않나요?

자, 오늘은 여기까지입니다! 이제 다양한 지수화 방법을 알았습니다. 동의하세요. 이것은 어려운 주제가 아니었습니다 :)
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION