Description
三只跳跳虎在学校操场上的一条数轴上玩耍,每只跳跳虎都占据一个不同的整数点。在一次移动中,一只跳跳虎跳进另两只跳跳虎之间的空间。两只跳跳虎决不能占据同一位置。 请让它们尽可能久地玩耍。
Format
Input
三个整数 A,B,C表示三只跳跳虎最初的位置。
Output
输出跳跳虎们最多能移动的次数。
#include <bits/stdc++.h>
using namespace std;
int main() {
int A, B, C;
int min, mid, max;
cin >> A >> B >> C; // 输入三只跳跳虎最初的位置
int positions[] = {A, B, C};
int size = sizeof(positions) / sizeof(positions[0]);//计算数组中的元素数量
sort(positions, positions + size); // 从小到大排序
int moves = 0; // 记录移动次数
while (1) {
min = positions[0];
mid = positions[1];
max = positions[2];
// 如果没有足够的空间进行移动,游戏结束
if (max - min == 2)
break;
if (mid - min < max - mid) {
positions[0] = mid;
positions[1] = mid + 1;
} else {
positions[2] = mid;
positions[1] = mid - 1;
}
moves++; // 增加移动次数
}
cout << moves << endl; // 输出最多能移动的次数
return 0;
}