求助站外题
  • 板块灌水区
  • 楼主osfly
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/11/29 10:10
  • 上次更新2023/11/5 07:07:09
查看原帖
求助站外题
339299
osfly楼主2020/11/29 10:10

翻滚的骰子

[题目描述]

桌面上有一个骰子。刚开始 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;
}
2020/11/29 10:10
加载中...