翻滚的骰子
[题目描述]
桌面上有一个骰子。刚开始 1 朝上,2 朝前,3 朝右,4 朝左,5 朝后,6 朝下。
我将把骰子朝不同的方向滚动若干次(每次 90°)。
请你告诉我最后骰子朝上一面的点数。
[输入格式]
一个只包含“L”、“R”、“F”、“B”(分别表示向左、向右、向前、向后)的字符串。长度不超过 100000。
[输出格式]
一个整数,表示最后骰子朝上一面的点数。
[样例输入 1]
LLRFRB
[样例输出 1]
3
[样例输入 2]
FFLLBLBBRRLBFFLBRLLFRB
[样例输出 2]
1
#include<cstdio>
int up=1;
int down=6;
int front=2;
int behind=5;
int left=4;
int right=3;
int change;
char ch;
void L()
{
change=up;
up=right;
right=down;
down=left;
left=change;
}
void R()
{
change=up;
up=left;
right=down;
down=right;
left=change;
}
void F()
{
change=up;
up=behind;
behind=down;
down=front;
front=change;
}
void B()
{
change=up;
up=front;
front=down;
down=behind;
behind=change;
}
int main()
{
while(~scanf("%c",&ch))
{
if(ch=='L') L();
if(ch=='R') R();
if(ch=='F') F();
if(ch=='B') B();
}
printf("%d",change);
return 0;
}