本文主要是介绍[JAVA][2013蓝桥杯模拟赛 JAVA本科B组][第四题:二阶魔方],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第四题:二阶魔方
题目描述:
魔方可以对它的6个面自由旋转。
我们来操作一个2阶魔方(如图1所示)
为了描述方便,我们为它建立了坐标系。
各个面的初始状态如下:
x轴正向:绿
x轴反向:蓝
y轴正向:红
y轴反向:橙
z轴正向:白
z轴反向:黄
假设我们规定,只能对该魔方进行3种操作。分别标记为:
x 表示在x轴正向做顺时针旋转
y 表示在y轴正向做顺时针旋转
z 表示在z轴正向做顺时针旋转
基本旋转后的效果如图2,3,4所示。
xyz 则表示顺序执行x,y,z 3个操作
题目的要求是:
从标准输入获得一个串,表示操作序列。
程序输出:距离我们最近的那个小方块的3个面的颜色。
顺序是:x面,y面,z面。
例如:在初始状态,应该输出:
绿红白
初始状态下,如果用户输入:
x
则应该输出:
绿白橙
初始状态下,如果用户输入:
zyx
则应该输出:
红白绿
我们来操作一个2阶魔方(如图1所示)
为了描述方便,我们为它建立了坐标系。
各个面的初始状态如下:
x轴正向:绿
x轴反向:蓝
y轴正向:红
y轴反向:橙
z轴正向:白
z轴反向:黄
假设我们规定,只能对该魔方进行3种操作。分别标记为:
x 表示在x轴正向做顺时针旋转
y 表示在y轴正向做顺时针旋转
z 表示在z轴正向做顺时针旋转
基本旋转后的效果如图2,3,4所示。
xyz 则表示顺序执行x,y,z 3个操作
题目的要求是:
从标准输入获得一个串,表示操作序列。
程序输出:距离我们最近的那个小方块的3个面的颜色。
顺序是:x面,y面,z面。
例如:在初始状态,应该输出:
绿红白
初始状态下,如果用户输入:
x
则应该输出:
绿白橙
初始状态下,如果用户输入:
zyx
则应该输出:
红白绿
样例输入:
xy
xxyyy
xyzzzzyyyxxx
xyyzzz
xyxyzzxyxyzz
xxyyy
xyzzzzyyyxxx
xyyzzz
xyxyzzxyxyzz
样例输出:
红白绿
白红蓝
绿红白
黄绿橙
白绿红
白红蓝
绿红白
黄绿橙
白绿红
解答
分析,设置方块类(取名叫Main而已)
对应正面的四个方块为
front[0] front[1]
front[2] front[3]
和正面方块相邻的反面方块的下标相同(即front[0]后面是back[0],1后面是back[1])
其他只要注意转动时的变化就行
这篇关于[JAVA][2013蓝桥杯模拟赛 JAVA本科B组][第四题:二阶魔方]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!