魔方可以对它的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 {public int[] Now = {1, 1, 1, 1}; //正前方public int[] Back = {2, 2, 2, 2};public int[] Left = {3, 3, 3, 3};public int[] Right = {4, 4, 4, 4};public int[] Up = {5, 5, 5, 5};public int[] Down = {6, 6, 6, 6};public void reverseX() {int[] value = new int[8];value[0] = Up[2];value[1] = Up[3];value[2] = Right[0];value[3] = Right[2];value[4] = Down[2];value[5] = Down[3];value[6] = Left[3];value[7] = Left[0];Up[2] = value[6];Up[3] = value[7];Right[0] = value[0];Right[2] = value[1];Down[2] = value[2];Down[3] = value[3];Left[3] = value[4];Left[0] = value[5];value[0] = Now[0];value[1] = Now[1];value[2] = Now[2];value[3] = Now[3];Now[0] = value[3];Now[1] = value[0];Now[2] = value[1];Now[3] = value[2];}public void reverseY() {int[] value = new int[8];value[0] = Up[3];value[1] = Up[1];value[2] = Back[1];value[3] = Back[2];value[4] = Down[1];value[5] = Down[2];value[6] = Now[2];value[7] = Now[1];Up[3] = value[6];Up[1] = value[7];Back[1] = value[0];Back[2] = value[1];Down[1] = value[2];Down[2] = value[3];Now[2] = value[4];Now[1] = value[5];value[0] = Right[0];value[1] = Right[1];value[2] = Right[2];value[3] = Right[3];Right[0] = value[2];Right[1] = value[0];Right[2] = value[3];Right[3] = value[1];}public void reverseZ() {int[] value = new int[8];value[0] = Now[1];value[1] = Now[0];value[2] = Left[0];value[3] = Left[1];value[4] = Back[0];value[5] = Back[1];value[6] = Right[1];value[7] = Right[0];Now[1] = value[6];Now[0] = value[7];Left[0] = value[0];Left[1] = value[1];Back[0] = value[2];Back[1] = value[3];Right[1] = value[4];Right[0] = value[5];value[0] = Up[0];value[1] = Up[1];value[2] = Up[2];value[3] = Up[3];Up[0] = value[2];Up[1] = value[0];Up[2] = value[3];Up[3] = value[1];}public void getResult(String A) {String[] color = {"", "绿", "蓝", "橙", "红", "白", "黄"};for(int i = 0;i < A.length();i++) {char j = A.charAt(i);if(j == 'x')reverseX();else if(j == 'y')reverseY();else if(j == 'z')reverseZ();}int[] result = new int[3];result[0] = Now[1];result[1] = Right[0];result[2] = Up[3];for(int i = 0;i < 3;i++)System.out.print(color[result[i]]);}public static void main(String[] args) {Main test = new Main();Scanner in = new Scanner(System.in);String A = in.next();test.getResult(A);}
}

Java实现二阶魔方旋转相关推荐

  1. 蓝桥杯之二阶魔方旋转

    /* 二阶魔方旋转 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴 ...

  2. 二阶魔方旋转 魔方可以对它的6个面自由旋转。 我们来操作一个2阶魔方(如图1所示):

    /* 二阶魔方旋转 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴 ...

  3. 【暴力模拟】二阶魔方旋转

    魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向: ...

  4. 蓝桥杯---二阶魔方旋转

    魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向: ...

  5. 蓝桥杯 二阶魔方旋转 模拟

    魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向: ...

  6. 蓝桥杯 二阶魔方旋转 暴力法

    魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向: ...

  7. 二阶魔方旋转 魔方可以对它的6个面自由旋转。 我们来操作一个2阶魔方(python版):

    def ROL(List,n,m):lidd = List[m-n:m]lidd.extend(List)lidd = lidd[0:m]return lidd class MOF():def __i ...

  8. 【蓝桥杯】历届真题 魔方旋转问题(高职组) Java

    问题描述 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方,如图: 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向 ...

  9. [JAVA][2013蓝桥杯模拟赛 JAVA本科B组][第四题:二阶魔方]

    第四题:二阶魔方 题目描述: 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示) 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向: ...

最新文章

  1. 如果你只做自己能力范围内的事,那么你永远没法进步
  2. sketch生成android代码,java – 从Android Processing Sketch保存图像
  3. 大数据、AI“武装”企业服务:风控、检索、安全
  4. 聊聊flink的MemoryPool
  5. python实现五大基本算法_算法基础:五大排序算法Python实战教程
  6. )类 新建javafx程序时_第三章 第一个OpenCV的JavaFX应用程序.md
  7. dj打碟怎么学_学DJ要不要去培训学校?
  8. POJ-3264-Balanced Lineup
  9. 注意sizeof()返回的数无符号数,有符号数遇到无符号数时变成无符号数
  10. java 链式写法_JAVA中实现链式操作(方法链)的简单例子
  11. Java中什么不是线程状态_并发基础(四) java中线程的状态
  12. 估值15.59亿,融资15亿,百合网的新三板孤注一掷,局中有局!
  13. java中strlen,浅析C++中strlen函数的使用与模拟实现strlen的方法
  14. 基于DFSMN-CTC及CTC-CE联合训练的声学模型
  15. 机器视觉系统——光源及打光
  16. 小程序云开发(九):WeUI
  17. UnityWebPlayer屏蔽右键及全屏
  18. java找出命题p和q的合取_从键盘输入两个命题变元P和Q的真值-求它们的合取、析取、蕴含和等价的真值.doc...
  19. php调试技术手册读书笔记,RT-Thread读书笔记之一:开始学习了
  20. 探究 PHP_CodeSniffer 的代码静态分析原理

热门文章

  1. SQL Server日期时间字符串的处理和转换
  2. submit()和onsubmit()的区别
  3. java算法:逻辑回归和线性回归
  4. gpu 虚拟服务器玩游戏,gpu云服务器可以玩游戏吗
  5. Linux C alarm的使用
  6. 博客设计展示:25个优秀博客设计
  7. Solidity学习笔记
  8. 国家开发银行软件测试工资待遇,国家开发银行总行工资待遇
  9. (转)Windows 7 系统下载安装一贴导航
  10. 《C语言程序教程》课后编程题