gpt4 book ai didi

arrays - 返回通过添加数组中的奇数而创建的新数组

转载 作者:行者123 更新时间:2023-12-02 18:08:50 25 4
gpt4 key购买 nike

我正在尝试从以下数组创建一个数组 arr=[1,2,3,4,5,6,7,8,9] ,它将以这种方式返回数字之和 1+3 = 4 ,3+5=8,5+7=12,7+9=16。所以最终的答案是 newArray =[4,8,12,16]。我怎样才能实现它。我已经完成了下面的代码,但它不起作用。

   fun main(){

val sum = arrayOf(1,2,3,4,5,6,7,8,9)
var first =0;
var second=0

for (i in sum.indices){
if(sum[i]%2!=0){
first += sum[i]
if (second!=0){
println(" $first + $second")
first=second
}
}
}


}

最佳答案

// val arr = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9)
val arr = arrayOf(1, 3, 5, 6, 7, 8, 2, 4, 9) // shuffled for test purposes

val result = arr
// I first posted this line, which was wrong:
// .filterIndexed { index, _ -> index % 2 == 0 }
.filterIndexed { _, value -> value % 2 == 1 }
.windowed(2, 1)
.map { it.sum() }

println(result)

三个步骤的详细信息:

  • filterIndexed 之后:[1, 3, 5, 7, 9]
  • 窗口化后:[[1, 3], [3, 5], [5, 7], [7, 9]]
  • 在 map 中,每个子列表都会被汇总。

编辑:这个答案的第一个版本通过过滤 index % 2 == 0 巧合地导致了相同的结果,因为OP中的输入数组没有被洗牌。

关于arrays - 返回通过添加数组中的奇数而创建的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72741752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com