【问题描述】
骰子是个立方体每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态。放置在平面上,用L表示向左翻转一次,用R表示向右翻转一次,用F表示向前翻转一次,用B表示向后翻转一次,用A表示逆时针旋转90度,用C表示顺时针旋转90度,现从初始状态开始,根据输入的动作序列,计算得到最终的状态。
【输入形式】
输入只包含LRFBAC的字母序列,最大长度为50,可重复
【输出形式】
输出经过一系列操作后的序列 注:按左右前后上下顺序输出
【样例输入】
LB
【样例输出】
5 6 1 2 3 4
我觉得是样例有问题
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.next(); int[] a = { 0, 1, 2, 3, 4, 5, 6 }; char[] ch = string.toCharArray(); int temp = 0; for (int i = 0; i < ch.length; i++) { switch (ch[i]) { case 'L': temp = a[5]; a[5] = a[2]; a[2] = a[6]; a[6] = a[1]; a[1] = temp; break; case 'R': temp = a[6]; a[6] = a[2]; a[2] = a[5]; a[5] = a[1]; a[1] = temp; break; case 'B': temp = a[3]; a[3] = a[6]; a[6] = a[4]; a[4] = a[5]; a[5] = temp; break; case 'F': temp = a[3]; a[3] = a[5]; a[5] = a[4]; a[4] = a[6]; a[6] = temp; break; case 'A': temp = a[1]; a[1] = a[4]; a[4] = a[2]; a[2] = a[3]; a[3] = temp; break; case 'C': temp = a[1]; a[1] = a[3]; a[3] = a[2]; a[2] = a[4]; a[4] = temp; break; default: break; } } for (int i = 1; i < a.length; i++) { System.out.print(a[i] + " "); } } }