【问题描述】
骰子是个立方体每个面一个数字,初始为左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] + " ");
}
}
}