import Foundation
func productsNConsecutiveItems(arr: [Int], n: Int) -> [Int] {
guard n > 0, arr.count >= n else { return [] }
let outSize = arr.count - n + 1
var result: [Int] = []
result.reserveCapacity(outSize)
for i in 0..<outSize {
let prod = arr[i..<i + n].reduce(1, *)
result.append(prod)
}
return result
}
let arr = [2, 3, 4, 5, 6, 7, 8, 9, 10]
let n = 3
print(productsNConsecutiveItems(arr: arr, n: n))
/*
run:
[24, 60, 120, 210, 336, 504, 720]
*/