1 回答
TA贡献1820条经验 获得超10个赞
根据您的代码,“数组表示法”应转换为以下等式:
[1,3,[2,[5],-3],7] = 1*(1 + 3 + 2*(2 + 3 * (5) - 3) + 7) = 1 + 3 + 2*(2 - 3 + 15) + 7 = 11 + 14 * 2 = 39
或
[1,3,[2,[5],-3],7] = 1*(1 + 3 + 2*(2 + 3 * (5) - 3) + 7) = 1 + 3 + 2*(-1) + 6 * 5 + 7 = 11 - 2 + 30 = 39
在您的解释中,每个嵌套级别都会使乘数增加一。
你能粘贴这个练习的确切内容吗?
编辑:
要获得 24 个结果,您的代码应如下所示:
func ProductSum(array []interface{}) int {
sum := productSum(array, 1)
fmt.Println(sum)
return sum
}
func productSum(array []interface{}, multiplier int) int {
sum := 0
for _, el := range array {
if cast, ok := el.([]interface{}); ok {
sum += productSum(cast, multiplier+1)
} else if cast, ok := el.(int); ok {
// Multiplier is applied only to integers in current slice.
sum += multiplier * cast
}
}
return sum
}
数组的总和始终乘以其嵌套级别。
- 1 回答
- 0 关注
- 54 浏览
添加回答
举报