两个正整数a,b,让a变为b,每次对a进行加k或者减k操作,每次k进行一次自增k=k+1(k初始值1)求自增多少次可以让a变为b,求最小操作次数
输入第一行t,接下来t行,每行有两个正整数a,b
1<=t<=100, 0<=a,b<=10^9,0<=|a-b|<=100
输出为t行,每一行为一组答案,表示最小操作次数
参考:https://blog.csdn.net/weixin_33796177/article/details/91957124
package main
import "fmt"
func main(){
var t int
fmt.Scan(&t)
for i:=0; i<t; i++{
var a,b int
fmt.Scan(&a)
fmt.Scan(&b)
fmt.Println(solveNiuNiu(a,b))
}
}
func solveNiuNiu(a,b int) int{
if a>b{
return solveNiuNiu(b,a)
}
target := b-a
i := 0
sum := 0
for sum < target{
i++
sum += i
}
if (sum-target)%2 == 0{
return i
}else {
if i%2 == 0{
return i+1
}else{
return i+2
}
}
}