/* 二阶魔方旋转
魔方可以对它的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
则应该输出:
红白绿


package 魔方;import java.util.Scanner;  public class Exe1 {public static void main(String[] args){  char[] xf = {'绿','绿','绿','绿'};  // x前   char[] xa = {'蓝','蓝','蓝','蓝'};  // x后   char[] yf = {'红','红','红','红'};  // y前   char[] ya = {'橙','橙','橙','橙'};  // y后   char[] zf = {'白','白','白','白'};  // z前   char[] za = {'黄','黄','黄','黄'};  // z后   Scanner scan = new Scanner(System.in);  System.out.println("输入关于xyz的字符串");  String s = scan.nextLine();  char[] c = s.toCharArray(); // 输入的数据以每个字符来操作   for(int i=0;i<c.length;i++){  switch(c[i]){  case 'x': { // x旋转操作   xSpin(xf, yf, ya, zf, za);  }break;  case 'y': { // y旋转操作   ySpin(xf, xa, yf, zf, za);  }break;  case 'z': { // z旋转操作   zSpin(xf, xa, yf, ya, zf);  }break;  }  }  System.out.println(xf[1]+""+yf[0]+""+zf[2]);  }  // x旋转操作   public static void xSpin(char[] xf, char[] yf, char[] ya, char[] zf,  char[] za) {  char yf0 = yf[0];  char yf2 = yf[2];  char ya0 = ya[0];  char ya2 = ya[2];  // 修改y的前后面   yf[0] = zf[0];  yf[2] = zf[2];  ya[0] = za[0];  ya[2] = za[2];  // 修改z的前后面   zf[0] = ya0;  zf[2] = ya2;  za[0] = yf0;  za[2] = yf2;  // 修改x前面   char xf0 = xf[0];  xf[0] = xf[2];  xf[2] = xf[3];  xf[3] = xf[1];  xf[1] = xf0;  }  // y旋转操作   public static void ySpin(char[] xf, char[] xa, char[] yf, char[] zf,  char[] za) {  char zf2 = zf[2];  char zf3 = zf[3];  char za0 = za[0];  char za1 = za[1];  // 修改z的前后面   zf[2] = xf[3];  zf[3] = xf[1];  za[1] = xa[2];  //bug:za[1] = xa[1];za[0] = xa[3];  // 修改x的前后面   xa[2] = zf2;  //bug  :xa[1] = zf2;xa[3] = zf3;  xf[1] = za0;  xf[3] = za1;  // 修改y前面   char yf0 = yf[0];  yf[0] = yf[2];  yf[2] = yf[3];  yf[3] = yf[1];  yf[1] = yf0;  }  // z旋转操作   public static void zSpin(char[] xf, char[] xa, char[] yf, char[] ya,  char[] zf) {  char xf0 = xf[0];  char xf1 = xf[1];  char xa2 = xa[2];  char xa0 = xa[0];  // 修改x的前后面   xf[0] = yf[0];  xf[1] = yf[1];  xa[0] = ya[2];  xa[2] = ya[3];  //bug:  xa[1] = ya[3];// 修改y的前后面   yf[0] = xa2;  //bug:yf[0] = xa1;  yf[1] = xa0;  ya[3] = xf0;  ya[2] = xf1;  // 修改z前面   char zf0 = zf[0];  zf[0] = zf[2];  zf[2] = zf[3];  zf[3] = zf[1];  zf[1] = zf0;  }
}

蓝桥杯之二阶魔方旋转相关推荐

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

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

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

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

  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. 2019蓝桥杯省赛---java---C---6(旋转)

    题目描述 问题描述图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时 针旋转 90 度. 我们用一个 n×m 的二维数组来表示一个图片,例如下面给出一个 3×4 的 图片的例子:1 3 ...

  7. Java实现二阶魔方旋转

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

  8. 二阶魔方旋转 魔方可以对它的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 ...

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

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

最新文章

  1. [Jarvis OJ - PWN]——[XMAN]level1
  2. css3-6 表格如何设置样式和定位样式是什么
  3. 细数阿里云服务器的十二种典型应用场景
  4. github atom_虚幻竞技场开放,GitHub发布了开源的Atom编辑器,等等
  5. MySQL Mathematical Functions(数学方法)
  6. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
  7. 2020-12-28 learning opencv3: 十一:resize, pyrDown, buildPyramid, pyrUp
  8. 220.存在重复元素III
  9. stm32获取绝对值编码器值(SSI,串行通讯)
  10. 静态代码编码安全审计: PHP源代码审计工具RIPS
  11. switch可以用什么手柄_steam设置switch手柄的步骤_Steam平台可以用switch良值pro手柄吗_怎么设置_9号资讯...
  12. 4.Java数组(一)
  13. switch语句查询水果价格
  14. 高级启动选项重装计算机,如何使用高级选项重装win10系统?重装win10系统方法...
  15. 当@PathVariable遇上了.
  16. SQL查询语句逻辑执行顺序
  17. tomcat部署web项目指导
  18. c语言单播,OSPF单播、多播及网络类型
  19. 三菱FX5U系列PLC使用FX5-CCL-MS模块无需编程即可实现CC-Link总线通信的具体步骤
  20. 总听说网站被DDoS攻击,损失惨重,那DDos攻击到底是什么

热门文章

  1. Windows命令行学习笔记
  2. 十年一觉电影梦:李安传
  3. 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)
  4. Unity 中的随机数!
  5. linux中的fs文件夹,linux上使用eCryptFS加密文件夹的方法
  6. c语言程序的引言,C语言程序设计-第1章-引言
  7. 多点移动电子地图定位
  8. 笔记本无线热点共享批处理bat_马立杰_新浪博客
  9. 前端监控--vue项目中使用友盟统计监控
  10. 国外大数据初创公司巨额融资 国内公司初长成