package main
import (
"fmt"
)
func productsNConsecutiveItems(arr []int, nConsecutiveItems int) []int {
products := []int{}
if nConsecutiveItems <= 0 || len(arr) < nConsecutiveItems {
return products // empty
}
outSize := len(arr) - nConsecutiveItems + 1
products = make([]int, outSize)
for i := 0; i < outSize; i++ {
prod := 1
// Multiply arr[i] * arr[i+1] * ... * arr[i+nConsecutiveItems-1]
for j := 0; j < nConsecutiveItems; j++ {
prod *= arr[i+j]
}
products[i] = prod
/*
Example for nConsecutiveItems = 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
*/
}
return products
}
func main() {
arr := []int{2, 3, 4, 5, 6, 7, 8, 9, 10}
n := 3
products := productsNConsecutiveItems(arr, n)
fmt.Println(products)
}
/*
run:
[24 60 120 210 336 504 720]
*/