我竟然过了(简单发个题解)
2023-08-24 23:04:56
发布于:四川
9阅读
0回复
0点赞
这是一个模拟问题,需要根据给定的移动顺序确定小球最终停留在哪个杯子下面。
具体思路如下:
读入输入数据,即Borko的移动顺序。
初始化一个数组cups,表示三个杯子的状态,初始状态为[1, 0, 0],即小球在左杯子下面。
遍历移动顺序中的每个字符,根据字符执行相应的交换操作。
如果字符为'A',表示交换左杯子和中杯子的位置,即将cups数组中的第一个和第二个元素交换。
如果字符为'B',表示交换中杯子和右杯子的位置,即将cups数组中的第二个和第三个元素交换。
如果字符为'C',表示交换左杯子和右杯子的位置,即将cups数组中的第一个和第三个元素交换。
找到cups数组中值为1的元素,并输出其索引加1,即表示小球最终停留在哪个杯子下面。
下面是一个可能的实现示例(C++代码):
cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
string moves;
cin >> moves;
vector<int> cups = {1, 0, 0};
for (char move : moves) {
if (move == 'A') {
swap(cups[0], cups[1]);
} else if (move == 'B') {
swap(cups[1], cups[2]);
} else if (move == 'C') {
swap(cups[0], cups[2]);
}
}
int ballPosition;
for (int i = 0; i < 3; i++) {
if (cups[i] == 1) {
ballPosition = i + 1;
break;
}
}
cout << ballPosition << endl;
return 0;
}
全部评论 2
我是你们卢老师上届杭州X02的
2023-08-25 来自 上海
0这玩意在洛谷是入门
2023-08-25 来自 上海
0翻译花了半天
2023-08-25 来自 四川
0事实是我洛谷做过
2023-08-25 来自 上海
06 你叫什么名字
2023-08-25 来自 四川
0
有帮助,赞一个