-
Math pow
Найпростіший спосіб вирішення поставленого завдання – використовувати клас Math. Це те рішення, яке ви використовуватимете в більшості випадків.
Клас Math містить методи, пов'язані з тригонометрією, геометрією та іншими аспектами математики. У ньому методи реалізовані як статичні, тому можна одразу викликати через ім'я класу Math без створення об'єкта класу.
Як у нас виглядатиме зведення у ступінь:
public static int pow(int value, int powValue) { return (int) Math.pow(value, powValue); }
Нам довелося використовувати приведення типу (int), тому що даний метод класу Math повертає значення типу double (аргументи по ідеї теж double, але там використовується неявне приведення типу).
А тепер – бонус: додаткові варіанти.
-
Значення квадрата числа
Почнемо, мабуть, із найпростішого.
Ось так пишеться метод для зведення у квадрат:
public static int pow(int value){ return value*value; }
Виклик у main:
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; }
Алгоритм дуже простий: ми як би задаємо точку відліку result, і далі множимо його на наше значення value стільки разів, скільки відпрацює цикл з powValue (powValue кількість разів)
-
Рекурсія
Наступний спосіб буде трохи екзотичнішим, але від цього не менш крутим.
Рекурсія — це засіб, що дозволяє методу викликати себе. У Java такий механізм є, і такі методи, відповідно, називаються рекурсивними.
Багато хто, якщо не всі алгоритмічні завдання, можна вирішувати рекурсивно. Дана теж не буде винятком, тому давайте поглянемо, як можна звести число у певний ступінь рекурсивним способом:
public static int pow(int value, int powValue) { if (powValue == 1) { return value; } else { return value * pow(value, powValue - 1); } }
Як бачимо, у нас є два випадки:
- Умова виходу з рекурсії, або інакше кажучи, коли в нас значення ступеня досягне одиниці, нас почне викидати назад.
- Сам механізм множення вказує на результат виклику цього ж методу, але з рівнимзначенням - 1.
Ну а тепер настав час поглянути на лінивіші способи, а саме — способи "з коробки".
-
BigInteger
Головне призначення класу BigInteger полягає у зберіганні цілих чисел довільної величини, але при цьому в ньому є різні арифметичні методи, що дозволяють працювати з цими величезними (ну чи не дуже) числами.
Докладніше про BigInteger можна почитати ось у цій статті .
Отже, як виглядатиме зведення в ступінь за допомогою BigInteger в Java?
public static int pow(int value, int powValue) { BigInteger a = new BigInteger(String.valueOf(value)); return a.pow(powValue).intValue(); }
Досить просто і без проблем, чи не так?
Эллеонора Керри
41 рівень
Як виконати зведення в ступінь Java
Hello world! Погуглити щось або попросити допомоги на форумі — звичайна річ навіть для досвідченого програміста. Але є у розробці наскільки базові та прості теми, що їх має знати навіть зелений новачок. І ось одна з таких тем. Сьогодні поговоримо про те, як виконується зведення у ступінь у мові Java. Уявимо на секунду, що вам дали завдання: знайти число до певної міри. Звучить досить просто, але як реалізувати рішення? Давайте розглянемо найпоширеніший спосіб та кілька альтернативних. А перш ніж "пірнути" у рішення, спочатку пригадаємо, що таке зведення числа в ступінь: Зведення в ступінь - це дія, при якому одне число множиться на себе кілька разів. Число, яке множиться, називається основою, а кількість разів множення – показником. Ну а результат цього самомноження основи називається зведенням у ступінь. Наприклад, для 8 - це 2 в третьому ступені, оскільки 2х2x2 = 8. Зведення якогось числа в другий ступінь вказує на те, що ми робимо його множником двічі, і як правило цей ступінь називається квадратним. Тобто 4 у квадраті = 4х4 = 16. Отже, пам'ять ми освіжабо, а тепер переходимо безпосередньо до способів застосування pow Java — методу для зведення в ступінь.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ