zoukankan      html  css  js  c++  java
  • 2017华为机试题--投骰子问题

    题目描述:骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置到平面上,可以向左翻转(用L表示向左翻转1次),可以向右翻转(用R表示向右翻转1次),可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向右翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示逆时针旋转90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。

    输入描述:

    初始状态为:123456

    输入只包含LRFBAC的字母序列,最大长度为50,可重复

    输出描述:输出最终状态

    输入例子:RA

    输出例子:436512

    代码如下:

     1 import java.util.*;
     2 
     3 public class Main {
     4 
     5     public static int l = 1, r = 2, f = 3, b = 4, u = 5, d = 6;
     6 
     7     public static void handle(char cmd) {
     8         if (cmd == 'C') {        //R
     9             int cpl = l;
    10             l = f;
    11             f = r;
    12             r = b;
    13             b = cpl;
    14         } else if (cmd == 'A') {        //L
    15             int cpr = r;
    16             r = f;
    17             f = l;
    18             l = b;
    19             b = cpr;
    20         } else if (cmd == 'F') {
    21             int cpf = f;
    22             f = u;
    23             u = b;
    24             b = d;
    25             d = cpf;
    26         } else if (cmd == 'B') {
    27             int cpb = b;
    28             b = u;
    29             u = f;
    30             f = d;
    31             d = cpb;
    32         } else if (cmd == 'R') {        //A
    33             int cpu = u;
    34             u = l;
    35             l = d;
    36             d = r;
    37             r = cpu;
    38         } else if (cmd == 'L') {        //C
    39             int cpu = u;
    40             u = r;
    41             r = d;
    42             d = l;
    43             l = cpu;
    44         }
    45     }
    46 
    47     public static void main(String[] args) {
    48         Scanner scan = new Scanner(System.in);
    49         String strs = scan.nextLine();
    50         scan.close();
    51         for (int i = 0; i < strs.length(); i++)
    52             handle(strs.charAt(i));
    53         System.out.println("" + l + r + f + b + u + d);
    54     }
    55 }
  • 相关阅读:
    黄宗禹9.11作业
    黄宗禹第一次作业
    9.11
    9.18
    计算平均速度
    圆的周长与面积
    JAVA 作业
    9.11
    9.25
    计算平均速度题
  • 原文地址:https://www.cnblogs.com/Jocelyn66/p/6687747.html
Copyright © 2011-2022 走看看