蓝桥杯 历届试题 青蛙跳杯子 java代码
时间: 2023-09-09 15:01:21 浏览: 117
青蛙跳杯子是蓝桥杯历届试题中的一道典型题目。题目要求模拟一个青蛙跳杯子的游戏,给定n个杯子和m次操作,每次操作可以选择一个杯子,并将其放置在当前位置前面或者后面的位置。最后,要求输出经过m次操作后,杯子从左到右的顺序。
下面是一个可能的Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 杯子的数量
int m = scanner.nextInt(); // 操作的次数
int[] cups = new int[n];
// 初始化杯子的初始顺序
for (int i = 0; i < n; i++) {
cups[i] = i+1;
}
// 执行m次操作
for (int i = 0; i < m; i++) {
int index = scanner.nextInt(); // 选择的杯子的位置
int direction = scanner.nextInt(); // 移动的方向,1表示前面,2表示后面
// 将选择的杯子移动到指定位置
if (direction == 1) {
for (int j = index-1; j > 0; j--) {
int temp = cups[j];
cups[j] = cups[j-1];
cups[j-1] = temp;
}
} else if (direction == 2) {
for (int j = index-1; j < n-1; j++) {
int temp = cups[j];
cups[j] = cups[j+1];
cups[j+1] = temp;
}
}
}
// 输出最终的杯子顺序
for (int i = 0; i < n; i++) {
System.out.print(cups[i] + " ");
}
}
}
```
该代码首先读取输入的杯子数量n和操作次数m,然后创建一个数组用来保存杯子的顺序。从1到n依次填充数组的初始顺序。接下来,执行m次操作,根据输入的位置和方向调整杯子的顺序,最后输出调整后的杯子顺序。
需要注意的是,该代码没有进行输入合法性的验证,实际应用中可能需要对输入进行适当的验证和处理。