2022-12-31:以下go语言代码输出什么?A:1 1;B:-1 1;C:-1 -1;D:编译错误。
代码语言:javascript复制package main
import "fmt"
func main() {
a := (-3) % 2
b := (-3) % (-2)
fmt.Println(a, b)
}
答案选C。x%y=x-x/y*y。
(-3) % 2=-3-(-3)/2*2=-3 3/2*2=-3 1*2=-3 2=-1。
(-3) % 2=-3-(-3)/(-2)*(-2)=-3 2=-3 3/2*2=-3 2=-1。
由此可见,根据x/y*y,分母出现了两次,正正得正,负负得正,跟正负没关系。但跟分子有关,结果的正负跟分子的正负一样。