解析:
一直往右条,直到第一次超过 x。
如果当前和目标点 p-x为偶数,则 (p-x) / 2 的那一步向左跳,这样会少跳 p-x ,正好补在多跳的这一段。
如果为奇数,则不能除2 ,则继续跳,直到距离为偶数即可。
-x和x答案一样。
#include<bits/stdc++.h>
using namespace std;
int x,cnt;
int main(){
scanf("%d",&x);
if(x<0) x=-x;
int t=1,p=0;
while(p<x||(p-x)%2!=0){
p+=t++;
cnt++;
}
cout<<cnt;
return 0;
}