How can I change number to negative number in kotlin

The absolutes variable represents a number. The sign attempts to convert "-" into a number "++" when "negative number" is "positive number". We're going to solve the task of adding all the variables that we changed.

a[i] = absolutes[i].unaryMinus()

In this sentence, Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

An error appears.

Can I know which part is wrong?

    val absolutes = intArrayOf(4,7,12)
    val sign = arrayOf(true,false,true)

    val a = intArrayOf(0)

    for (i in absolutes.indices){

        if (!sign[i]) {
            a[i] = absolutes[i].unaryMinus()
        }
    }

    val result = a.sum()

    Log.d(logTag, "onCreate is called result = $result")

Solution 1:

intArrayOf from the Kotlin standard library "Returns an array containing the specified Int numbers".

Thus, your value of a is an IntArray of size 1. You cannot assign values to indices above the lastIndex, which in this case is 0.

I assume you aimed to create an IntArray of the same size as your input, filled with zeroes by default.

val a = IntArray(absolutes.size)