How to multiply every N consecutive items in a list with Kotlin

1 Answer

0 votes
fun productsNConsecutiveItems(lst: List<Int>, n: Int): List<Int> {
    if (n <= 0 || lst.size < n) return emptyList()

    return lst.windowed(n).map { window ->
        window.reduce { acc, x -> acc * x }
    }
}

fun main() {
    val lst = listOf(2, 3, 4, 5, 6, 7, 8, 9, 10)
    val n = 3

    val products = productsNConsecutiveItems(lst, n)
    println(products)
}


/*
  * Example for n_consecutive_items = 3:
  * 2 * 3 * 4  = 24
  * 3 * 4 * 5  = 60
  * 4 * 5 * 6  = 120
  * 5 * 6 * 7  = 210
  * 6 * 7 * 8  = 336
  * 7 * 8 * 9  = 504
  * 8 * 9 * 10 = 720
*/

/*
run:

[24, 60, 120, 210, 336, 504, 720]

*/

 



answered Feb 2 by avibootz

Related questions

...