这是我写的代码 你看看吧
首先如果只执行A操作的话 能到的位置是2^n-1,每次都是到这个位置,然后我们判断这些点是不是
我们要到达的点,如果不是我们就要找到要到达的点的两端,走到最右端倒回去,倒回去的时候其实
和往前走是一样的,因为速度这时候也变成了1
int racer(int target)
{
    int sum = 0;
    int i = 0;
    for (i; i < 1000; i++)
    {
        if ((pow(2, i)-1) == target)
            return i;
        if ((pow(2, i)-1) < target && (pow(2, i + 1)-1) > target)
            break;
    }
    sum = sum + i + 1;
    int dis = pow(2, i + 1) - 1 - target;
    sum = sum + racer(dis) + 1;
    return sum;
}