魔方可以对它的6个面自由旋转。
我们来操作一个2阶魔方(如图1所示):
为了描述方便,我们为它建立了坐标系。
各个面的初始状态如下:
x轴正向:绿
x轴反向:蓝
y轴正向:红
y轴反向:橙
z轴正向:白
z轴反向:黄
假设我们规定,只能对该魔方进行3种操作。分别标记为:
x 表示在x轴正向做顺时针旋转
y 表示在y轴正向做顺时针旋转
z 表示在z轴正向做顺时针旋转
xyz 则表示顺序执行x,y,z 3个操作
题目的要求是:
用户从键盘输入一个串,表示操作序列。
程序输出:距离我们最近的那个小方块的3个面的颜色。
顺序是:x面,y面,z面。
例如:在初始状态,应该输出:
绿红白
初始状态下,如果用户输入:
x
则应该输出:
绿白橙
初始状态下,如果用户输入:
zyx
则应该输出:
红白绿
import java.util.Scanner;public class Main {//上 下 左 右 前 后//0 1 2 3 4 5//左上到右下顺时针public static void main(String[] args) {String[][] sign = new String[][] {{"白", "白", "白", "白"}, {"黄", "黄", "黄", "黄"}, {"橙", "橙", "橙", "橙"}, {"红", "红", "红", "红"}, {"绿", "绿", "绿", "绿"}, {"蓝", "蓝", "蓝", "蓝"}};String str = "";Scanner sc = new Scanner(System.in);str = sc.nextLine();for(int i = 0; i < str.length(); i ++) {if(str.charAt(i) == 'x') {String _1_1 = sign[0][2];String _1_2 = sign[0][3];String _2_1 = sign[3][3];String _2_2 = sign[3][0];String _3_1 = sign[1][0];String _3_2 = sign[1][1];sign[0][2] = sign[2][1];sign[0][3] = sign[2][2];sign[3][3] = _1_1;sign[3][0] = _1_2;sign[1][0] = _2_1;sign[1][1] = _2_2;sign[2][1] = _3_1;sign[2][2] = _3_2;//前面String temp_1 = sign[4][1];String temp_2 = sign[4][2];String temp_3 = sign[4][3];sign[4][1] = sign[4][0];sign[4][2] = temp_1;sign[4][3] = temp_2;sign[4][0] = temp_3;}else if(str.charAt(i) == 'y') {String _1_1 = sign[0][1];String _1_2 = sign[0][2];String _2_1 = sign[5][3];String _2_2 = sign[5][0];String _3_1 = sign[1][1];String _3_2 = sign[1][2];sign[0][1] = sign[4][1];sign[0][2] = sign[4][2];sign[5][3] = _1_1;sign[5][0] = _1_2;sign[1][1] = _2_1;sign[1][2] = _2_2;sign[4][1] = _3_1;sign[4][2] = _3_2;//右面String temp_1 = sign[3][1];String temp_2 = sign[3][2];String temp_3 = sign[3][3];sign[3][1] = sign[3][0];sign[3][2] = temp_1;sign[3][3] = temp_2;sign[3][0] = temp_3;}else {String _1_1 = sign[2][0];String _1_2 = sign[2][1];String _2_1 = sign[5][0];String _2_2 = sign[5][1];String _3_1 = sign[3][0];String _3_2 = sign[3][1];sign[2][0] = sign[4][0];sign[2][1] = sign[4][1];sign[5][0] = _1_1;sign[5][1] = _1_2;sign[3][0] = _2_1;sign[3][1] = _2_2;sign[4][0] = _3_1;sign[4][1] = _3_2;//上面String temp_1 = sign[0][1];String temp_2 = sign[0][2];String temp_3 = sign[0][3];sign[0][1] = sign[0][0];sign[0][2] = temp_1;sign[0][3] = temp_2;sign[0][0] = temp_3;}}System.out.println(sign[4][1] + sign[3][0] + sign[0][2]);}
}
转载于:.html
本文发布于:2024-02-04 19:19:27,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170714597258728.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |