Algorithm 为什么代码在Codibility测试用例中返回负值?

Algorithm 为什么代码在Codibility测试用例中返回负值?,algorithm,go,Algorithm,Go,可变性问题和测试用例如所示: 用golang编写的代码: func Solution(A []int, B []int) []int { result := make([]int, len(A)) step := make([]int, len(A)+1) step[0] = 1 step[1] = 1 for i := 2; i <= len(A); i++ { step[i] = step[i-1] + step[i-2]

可变性问题和测试用例如所示:

用golang编写的代码:

func Solution(A []int, B []int) []int {
    result := make([]int, len(A))
    step := make([]int, len(A)+1)
    step[0] = 1
    step[1] = 1
    for i := 2; i <= len(A); i++ {
        step[i] = step[i-1] + step[i-2]
    }
    for i := 0; i < len(A); i++ {
        result[i] = int(int32(step[A[i]]) % int32(math.Pow(2, float64(B[i]))))
        // result[i] = step[A[i]] & (1<<uint(B[i]) - 1)
    }
    return result
}
func解决方案(A[]int,B[]int)[]int{
结果:=make([]整数,len(A))
步骤:=make([]整数,len(A)+1)
步骤[0]=1
步骤[1]=1

对于i:=2;i对于某些输入,您正在转换范围
[1中的值对于某些输入,您正在转换范围
中的值[1您是否对A和B使用了与您提供的链接中给出的完全相同的数组?如果A和B都由小的正整数组成,我看不出任何原因导致结果为负。示例数组结果正常。但在提交代码后,它在某些情况下失败。不幸的是,codilty没有显示完全相同的测试用例,因此我没有关于本例中使用的数组的想法。奇怪!您是否使用与您提供的链接中给出的A和B完全相同的数组?如果A和B都由小的正整数组成,我看不出任何原因导致结果为负。示例数组结果正常。但在提交代码后,在某些情况下失败。不幸的是,codilty没有显示确切的测试用例,因此我不知道该用例中使用的数组。奇怪!您是否使用与您提供的链接中给出的A和B完全相同的数组?如果A和B都由小的正整数组成,我看不出任何原因导致结果为负。示例数组的结果正常。但是在提交代码后,它将返回在某些情况下失败。不幸的是,codilty没有显示确切的测试用例,因此我不知道该案例中使用的数组。奇怪!这很有意义!Codibility问题假设数组B的每个元素都是[1..30]范围内的整数
,可能一些测试用例的输入超过了该限制。这是有意义的!可编码性问题假设数组B的每个元素都是[1..30]范围内的整数。
,可能一些测试用例的输入超过了该限制。这是有意义的!可编码性问题假设数组B的每个元素都是[1..30]范围内的整数
,可能某些测试用例的输入超出了该限制。
a := int64(1 << 31)
b := int64(1<<32 - 1)
// int32(a) == -2147483648
// int32(b) == -1