考虑贪心,一直向右跳,如果超过了,就要往回跳,如果超过的是偶数步数,就可以把前边的某一步变为相反方向,

就可以直接到达了,因为加上一个数变成减去一个数,差值一定是该数绝对值的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;
}