掷骰子
题目
本题主要考察字符串操作,注意到,每一次翻转的时候,有两个方向的是不会变的,其他的四个方向也只是机械地进行交换。
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("");
}
}