我遇到了看似简单的算法问题.我试图在3次或更少的操作中完成它,我有理由相信它可以通过数学解决,但我无法弄明白(问题的来源没有答案).
编辑:
(a[0] == a[1] + a[0] == a[2] + a[1] == a[2]) == 1
Run Code Online (Sandbox Code Playgroud)
是我最初的想法,但我想看看是否可以在更少的操作中完成(1比较是一个操作).
假设3个数字是a,b和c,
(b == c) ? (a != c) : (a == b || a == c)
Run Code Online (Sandbox Code Playgroud)
b == c(true)然后调用a != c(false)并完成.b == c(false)然后调用a == b(true)并完成.b == c(false)然后调用a == b(false)和a == c(true)并完成.b == c(true)然后调用a != c(true)并完成.b == c(false)然后调用a == b(false)和a == c(false)并完成.因此,最多进行3次比较.
也有在2个条件分支点?:及||,但OP不指望它.