蜗蜗很喜欢玩一个游戏:一共有三个不透明的杯子,倒扣着在桌面上排成一排,只有中间那个杯子里面有一个小球,然后不断地快速交换杯子的位置(里面的球跟着杯子一起动),最后让别人猜球到底在哪个位置上。现在小蜗蜗想让你帮他完成移动杯子的动作,并悄悄告诉你他只会交换kk次杯子的位置,然后他会将交换哪两个杯子的指令告诉你,最后请你找出球在哪个位置。 输入格式 第一行一个整数kk。 接下来一共kk行。每一行包含两个整数a,ba,b,a,ba,b都在11到33之间并且它们不相等,表示将从左往右的第aa个杯子和从左往右的第bb个杯子交换。 输出格式 输出一个整数,在11到33之间,表示现在球在从左往右的第几个杯子底下。注意,一开始小球在中间那个杯子里,也就是从左往右的第22个杯子。
时间: 2023-02-08 19:24:19 浏览: 250
这道题的思路就是:刚开始球在第二个杯子里,每次交换的时候就把球的位置记录下来。最后输出球最后停留的位置。
你可以使用一个数组来记录球的位置。每次交换的时候,就交换两个杯子的位置,并且把球的位置也同时更新。
举个例子:
假如刚开始球在第二个杯子里,也就是数组的第二个位置,球的位置数组就是:[0, 1, 0]
然后给出交换杯子的指令,交换第一个和第三个,那么杯子的位置数组就变成:[1, 0, 1]
然后再给出交换杯子的指令,交换第二个和第三个,那么杯子的位置数组就变成:[1, 1, 0]
最后输出数组中值为1的位置就是球停留的位置。
代码如下:
```
int k;
cin >> k;
int a[3] = {0, 1, 0}; // 初始化球的位置数组
while (k--) {
int a1, b1;
cin >> a1 >> b1;
// 交换杯子的位置
swap(a[a1 - 1], a[b1 - 1]);
}
// 输出球最后停留的位置
for (int i = 0; i < 3; i++) {
if (a[i] == 1) {
cout << i + 1 << endl;
break;
}
}
```
相关问题
C++编写斐波那契数列指的是以下数列: 1,1,2,3,5,8,...,从第三个数开始,每个数是前两个数的和。 现在蜗蜗写出了这个数列的前 n 个数,请你帮他算一算,这 n 个数中有多少是奇数。
好的,这是一个可以计算斐波那契数列中奇数个数的C++程序:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int f1 = 1, f2 = 1, cnt = 0;
if (n >= 1) {
cout << "1 ";
cnt++;
}
if (n >= 2) {
cout << "1 ";
cnt++;
}
for (int i = 3; i <= n; i++) {
int f = f1 + f2;
f1 = f2;
f2 = f;
if (f % 2 == 1) {
cout << f << " ";
cnt++;
}
}
cout << endl << cnt << endl;
return 0;
}
```
这个程序首先读入一个整数 `n`,表示要计算前n个斐波那契数列的奇数个数。我们使用两个变量 `f1` 和 `f2` 分别记录前两个斐波那契数列的值,然后从第3个数开始,每次计算当前数等于前两个数之和,然后更新 `f1` 和 `f2` 的值。如果当前数是奇数,我们输出这个数,并且将奇数个数 `cnt` 加1。最后输出奇数个数 `cnt` 的值。
这个程序的时间复杂度为 $O(n)$,可以计算前n个斐波那契数列中奇数的个数。
蜗蜗最近沉迷上了蜗蜗棋。 蜗蜗棋里有一颗棋子,一开始出现在数轴上等于 x 的位置。 对于每一步,假设当前棋子的位置为 c ,如果 c<k,那么蜗蜗会把棋子挪到位置 c+y,否则蜗蜗会把棋子挪到位...
蜗蜗棋是一个非常有趣的游戏,它的规则很简单,但是需要一定的技巧和策略才能获胜。
对于这个问题,我们可以用一个 while 循环来模拟整个游戏过程。具体的实现方式如下:
1. 初始化当前棋子位置 c 为 x。
2. 不断循环执行以下步骤,直到棋子位置等于目标位置 y:
- 如果当前棋子位置 c 小于目标位置 k,那么棋子位置 c 加上 y。
- 否则,棋子位置 c 减去 z。
3. 输出最终的游戏结果。
下面是一个示例代码,可以帮助你更好地理解这个问题的解决方案:
```python
x = 0 # 初始位置
k = 100 # 目标位置
y = 10 # c<k 时的增量
z = 20 # c>=k 时的减量
c = x # 初始化当前位置
while c != k:
if c < k:
c += y
else:
c -= z
print("游戏结束,最终位置为:", c)
```
当你运行这个代码时,它会输出游戏结束时棋子的最终位置。你可以尝试修改 x、k、y 和 z 的值,来观察游戏结果的变化。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)