-
수학 펑
이 문제를 해결하는 가장 쉬운 방법은 Math 클래스를 사용하는 것입니다. 이것이 대부분의 경우에 사용하게 될 솔루션입니다.
Math 클래스에는 삼각법, 기하학 및 기타 수학 측면과 관련된 메서드가 포함되어 있습니다. 여기서 메소드는 정적으로 구현되므로 클래스 객체를 생성하지 않고도 Math 클래스의 이름을 통해 즉시 호출할 수 있습니다.
지수화는 어떻게 생겼나요?
public static int pow(int value, int powValue) { return (int) Math.pow(value, powValue); }
Math 클래스의 이 메서드는 double 유형의 값을 반환하기 때문에 유형 캐스트(int)를 사용해야 했습니다(인수도 double이지만 암시적 유형 캐스트가 사용됩니다).
그리고 지금 - 보너스: 추가 옵션.
-
숫자의 제곱의 값
아마도 가장 간단한 것부터 시작해 보겠습니다.
제곱 방법은 다음과 같이 작성됩니다.
public static int pow(int value){ return value*value; }
기본으로 전화하세요:
public static void main(String[] args) { System.out.println(Solution.pow(7)); }
그게 전부입니다. 복잡하거나 불필요한 것은 없습니다.
-
힘에 대한 숫자
그러나 제곱수가 우리에게 필요한 전부는 아닙니다. 대부분의 작업에서는 어느 정도 숫자가 필요하므로 다음은 약간 더 복잡한 버전이지만 사용자 정의 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 횟수)만큼 값을 곱합니다.
-
재귀
다음 방법은 좀 더 이국적이지만 그다지 멋지지는 않습니다.
재귀는 메소드가 자신을 호출할 수 있도록 하는 기능입니다. Java에는 이러한 메커니즘이 존재하므로 이러한 메서드를 재귀적이라고 합니다.
전부는 아니더라도 많은 알고리즘 문제를 재귀적으로 해결할 수 있습니다. 이것도 예외는 아니므로 재귀적인 방식으로 숫자를 특정 거듭제곱으로 높이는 방법을 살펴보겠습니다.
public static int pow(int value, int powValue) { if (powValue == 1) { return value; } else { return value * pow(value, powValue - 1); } }
보시다시피 두 가지 경우가 있습니다.
- 재귀를 종료하기 위한 조건, 즉 학위 값이 1에 도달하면 뒤로 물러나기 시작합니다.
- powValue - 1을 사용하여 동일한 메서드를 호출한 결과에 value를 곱하는 메커니즘 자체입니다.
자, 이제 게으른 방법, 즉 "즉시 사용 가능한" 방법을 살펴볼 차례입니다.
-
빅정수
BigInteger 클래스의 주요 목적은 임의 크기의 정수를 저장하는 것이지만 동시에 이러한 큰(또는 그리 크지 않은) 숫자로 작업할 수 있는 다양한 산술 메서드도 있습니다.
이 기사 에서 BigInteger에 대한 자세한 내용을 읽을 수 있습니다 .
그렇다면 Java에서 BigInteger를 사용하면 지수화는 어떻게 될까요?
public static int pow(int value, int powValue) { BigInteger a = new BigInteger(String.valueOf(value)); return a.pow(powValue).intValue(); }
아주 간단하고 문제도 없지 않나요?
Эллеонора Керри
레벨 41
Java에서 지수화하는 방법
안녕하세요! 인터넷 검색을 하거나 포럼에 도움을 요청하는 것은 숙련된 프로그래머에게도 흔한 일입니다. 하지만 개발에는 너무나 기본적이고 단순해서 초심자라도 알아야 할 주제들이 있습니다. 그리고 여기에 그 주제 중 하나가 있습니다. 오늘은 Java에서 지수 연산이 수행되는 방법에 대해 이야기하겠습니다. 당신에게 임무가 주어졌다고 잠시 상상해 봅시다. 어느 정도 숫자를 찾는 것입니다. 매우 간단해 보이지만 솔루션을 구현하는 방법은 무엇입니까? 가장 일반적인 방법과 몇 가지 대안을 살펴보겠습니다. 그리고 해결책에 대해 "깊이 살펴보기" 전에 먼저 숫자를 거듭제곱하는 것이 무엇인지 기억해 봅시다. 거듭제곱하는 것은 하나의 숫자에 여러 번 곱해지는 동작입니다. 곱해지는 수를 밑수, 곱해지는 횟수를 지수라고 합니다. 음, 이러한 밑수 자체 곱셈의 결과를 지수화라고 합니다. 예를 들어 8의 경우 2x2x2=8이므로 2의 3제곱입니다. 숫자의 2승은 인수를 2배로 한다는 의미이며, 일반적으로 이 거듭제곱을 제곱승이라고 합니다. 즉, 4 제곱 = 4x4 = 16입니다. 따라서 우리는 메모리를 새로 고쳤으며 이제 Java에서 pow를 사용하는 방법, 즉 지수화 방법으로 직접 이동합니다.
GO TO FULL VERSION