考虑贪心,一直向右跳,如果超过了,就要往回跳,如果超过的是偶数步数,就可以把前边的某一步变为相反方向,
就可以直接到达了,因为加上一个数变成减去一个数,差值一定是该数绝对值的2倍,例如+1变成-1差了2,+2变成-2差了4这样
如果超过的是奇数,就继续往前跳,知道超过的数是偶数,就和上一种情况相同了
#include<stdio.h>
int n;
int main(){
scanf("%d",&n);
if(n<0) n=-n;
int p=0,t=1,ans=0;
while(p<n){
p=p+t;
ans++;
t++;
}
if((p-n)%2==0){
printf("%d\n",ans);
}
else{
while((p-n)%2==1){
p=p+t;
ans++;
t++;
}
printf("%d\n",ans);
}
return 0;
}