这是我写的代码 你看看吧
首先如果只执行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;
}