掷骰子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LYKXHTP/article/details/88830837

掷骰子

题目

在这里插入图片描述
在这里插入图片描述
本题主要考察字符串操作,注意到,每一次翻转的时候,有两个方向的是不会变的,其他的四个方向也只是机械地进行交换。
C++代码如下:

#include <stdio.h>
#include <cstring>

void trans(char str[],char c){
    if(c=='L'){
        char temp=str[1];
        str[1]=str[5];
        str[5]=str[2];
        str[2]=str[6];
        str[6]=temp;
    }else if(c=='R'){
        char temp=str[2];
        str[2]=str[5];
        str[5]=str[1];
        str[1]=str[6];
        str[6]=temp;
    }else if(c=='F'){
        char temp=str[3];
        str[3]=str[5];
        str[5]=str[4];
        str[4]=str[6];
        str[6]=temp;
    }else if(c=='B'){
        char temp=str[4];
        str[4]=str[5];
        str[5]=str[3];
        str[3]=str[6];
        str[6]=temp;
    }else if(c=='A'){
        char temp=str[1];
        str[1]=str[4];
        str[4]=str[2];
        str[2]=str[3];
        str[3]=temp;
    }else if(c=='C'){
        char temp=str[1];
        str[1]=str[3];
        str[3]=str[2];
        str[2]=str[4];
        str[4]=temp;
    }
}

int main()
{

    char cmd[50];
    while(scanf("%s",cmd)!=EOF){
        char str[10]={'0','1','2','3','4','5','6'};
        int len=strlen(cmd);
//        printf("%d\n",len);
//        int len=sizeof(cmd)/sizeof(cmd[0]);//50
        for(int i=0;i<len;i++){
            trans(str,cmd[i]);
        }
        for(int i=1;str[i]!=0;i++){
            printf("%c",str[i]);
        }
        printf("\n");
    }
    return 0;
}

Java代码如下:

    import java.util.Scanner;

    public class Main {
        public static void main(String[] args) {
            Main pMain = new Main();
            pMain.input();
        }
        private void input() {
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                String x = in.nextLine();
                solve(x);
            }
            in.close();
        }
        private void solve(String x) {
            char[] a = x.toCharArray();
            int[] res = {0,1,2,3,4,5,6};
            for (int i=0; i<a.length; i++) {
                char swch = a[i];
                if (swch == 'L') {
                        int temp = res[1];
                        res[1] = res[5];
                        res[5] = res[2];
                        res[2] = res[6];
                        res[6] = temp;
                } else if (swch == 'R') {
                        int temp = res[1];
                        res[1] = res[6];
                        res[6] = res[2];
                        res[2] = res[5];
                        res[5] = temp;
                } else if (swch == 'B') {
                        int temp = res[3];
                        res[3] = res[6];
                        res[6] = res[4];
                        res[4] = res[5];
                        res[5] = temp;
                } else if (swch == 'F') {
                        int temp = res[3];
                        res[3] = res[5];
                        res[5] = res[4];
                        res[4] = res[6];
                        res[6] = temp;
                } else if (swch == 'A') {
                    int temp = res[1];
                    res[1] = res[4];
                    res[4] = res[2];
                    res[2] = res[3];
                    res[3] = temp;
                } else if (swch == 'C') {
                    int temp = res[1];
                    res[1] = res[3];
                    res[3] = res[2];
                    res[2] = res[4];
                    res[4] = temp;
                    }
            }
            for (int i=1; i<=6; i++) {
                System.out.print(res[i]);
            }
            System.out.println("");
        }
    }

猜你喜欢

转载自blog.csdn.net/LYKXHTP/article/details/88830837