2017华为机试题--投骰子问题
来源:互联网 发布:淘宝新店0销量 编辑:程序博客网 时间:2024/05/18 03:55
题目描述:骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置到平面上,可以向左翻转(用L表示向左翻转1次),可以向右翻转(用R表示向右翻转1次),可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向右翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示逆时针旋转90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。
输入描述:
初始状态为:123456
输入只包含LRFBAC的字母序列,最大长度为50,可重复
输出描述:输出最终状态
输入例子:RA
输出例子:436512
代码如下:
import java.util.*;public class Dice {public static int l = 1, r = 2, f = 3, b = 4, u = 5, d = 6;public static void handle(char cmd) {if (cmd == 'C') {//Rint cpl = l;l = f;f = r;r = b;b = cpl;} else if (cmd == 'A') {//Lint cpr = r;r = f;f = l;l = b;b = cpr;} else if (cmd == 'F') {int cpf = f;f = u;u = b;b = d;d = cpf;} else if (cmd == 'B') {int cpb = b;b = u;u = f;f = d;d = cpb;} else if (cmd == 'R') {//Aint cpu = u;u = l;l = d;d = r;r = cpu;} else if (cmd == 'L') {//Cint cpu = u;u = r;r = d;d = l;l = cpu;}}public static void main(String[] args) {Scanner scan = new Scanner(System.in);String strs = scan.nextLine();scan.close();for (int i = 0; i < strs.length(); i++)handle(strs.charAt(i));System.out.println("" + l + r + f + b + u + d);}}
0 0
- 2017华为机试题--投骰子问题
- 华为机试题——掷骰子游戏
- 2017华为机试题--全排列问题
- 华为机试题--排序问题
- 华为机试题-约瑟夫问题
- 掷骰子游戏 华为机试
- 华为机试—掷骰子游戏
- 华为机试题(11)--约瑟夫问题
- 约瑟夫环问题华为机试题
- 华为机试题--任务调度问题
- 【华为机试题】操作系统任务调度问题
- 华为机试题: 约瑟夫问题(Java)
- 【华为机试题】小熊搬家问题
- 01背包问题,华为机试题
- 华为上机试题:数字问题.
- 华为优招面试题---迷宫问题
- 2017华为实习机试题(java)
- 华为机试题(2017/04/01)
- vijos刷题记录(可能弃坑
- linux chattr 用法示例 修改文件属性
- 编程总结(二)C++11中的多线程
- input标签type="file"的格式要求,以及文件阅读,图片上传前的显示
- Spring Redis(2)数据访问
- 2017华为机试题--投骰子问题
- 将博客搬至CSDN
- swift navigationItem titleButton
- 栈模拟进制转化
- 双亲加载模式
- 操作系统实验四之实现shell
- classic bluetooth chat 三
- Apache Maven 入门篇(下)
- 什么是java REST与RESTFUL