Возведение в степень в Kotlin: pow и простой вариант для Int

В Kotlin для чисел с плавающей точкой используют функцию `pow` из `kotlin.math`.

Ниже — разделы про когда использовать pow, если нужны целые числа и простая функция для Int, чтобы быстро понять устройство материала, практические ограничения и типовые точки отказа.


В Kotlin для чисел с плавающей точкой используют функцию pow из kotlin.math

import kotlin.math.pow

fun main() {
    val result = 2.0.pow(3.0)
    println(result)
}

Вывод:

8.0

Обратите внимание: pow работает с Double и возвращает Double. Поэтому результат выглядит как 8.0, а не 8

Когда использовать pow

pow удобен, когда вы работаете с дробными значениями или математической формулой, где результат тоже может быть дробным

import kotlin.math.pow

fun main() {
    val side = 2.5
    val square = side.pow(2.0)
    println(square)
}

Вывод:

6.25

Для учебных задач это самый понятный вариант: импортировали функцию, передали основание и показатель, получили результат

Если нужны целые числа

Для учебных задач можно привести результат к Int

import kotlin.math.pow

fun main() {
    val result = 2.0.pow(10.0).toInt()
    println(result)
}

Но для больших чисел и точных расчетов такое приведение может быть опасным: Double не предназначен для абсолютно точной целочисленной арифметики

Простая функция для Int

Если степень неотрицательная и числа небольшие, можно написать свой вариант

fun intPow(base: Int, exponent: Int): Int {
    require(exponent >= 0) { "Степень должна быть неотрицательной" }

    var result = 1
    repeat(exponent) {
        result *= base
    }
    return result
}

fun main() {
    println(intPow(3, 4))
}

Вывод:

81

Как проверить себя

Поменяйте пример на такие значения:

println(intPow(2, 0))
println(intPow(2, 1))
println(intPow(2, 5))

Ожидаемый вывод:

1
2
32

Если при степени 0 получается не 1, значит функция написана неправильно. Это частая проверка для самодельной степени

Что делать с отрицательной степенью

Самодельная функция intPow выше специально запрещает отрицательную степень, потому что результат уже не будет целым числом. Например, 2 в степени -1 дает 0.5. Для таких случаев проще использовать pow и оставаться в Double:

import kotlin.math.pow

fun main() {
    println(2.0.pow(-1.0))
}

Вывод:

0.5

Это нормальное поведение. Если вы пишете учебную функцию для Int, лучше явно запретить отрицательную степень через require, чем молча возвращать неожиданный результат

Частые ошибки

Пытаться написать 2 ^ 3

В Kotlin оператор ^ не означает степень. Это побитовая операция в других языках, а в Kotlin для степени используйте pow или свою функцию

Забыть import

Если pow не находится, добавьте:

import kotlin.math.pow

Ждать Int от pow

pow возвращает Double. Если нужен Int, решите, безопасно ли делать .toInt()

Использовать Double там, где важна точность до копейки

Для финансовых расчетов Double не подходит. Если считаете деньги, проценты или точные суммы, используйте BigDecimal и отдельную логику округления. Для обычного учебного примера степени pow достаточно

Что почитать дальше по Kotlin

Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x