题目描述:
思路:在旋转的每个过程中,始终有2个面是不变的。剩余的四个面采用暴力列举方式。
// 转骰子.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string str;
cin >> str;
string ini = "123456";
for (int i = 0; i < str.size(); i++)
{
if (str[i] == 'L')
{
swap(ini[0], ini[5]);
swap(ini[1], ini[4]);
swap(ini[0], ini[1]);
}
else if (str[i] == 'R')
{
swap(ini[0], ini[5]);
swap(ini[1], ini[4]);
swap(ini[4], ini[5]);
}
else if (str[i] == 'F')
{
swap(ini[3], ini[5]);
swap(ini[2], ini[4]);
}
else if (str[i] == 'B')
{
swap(ini[3], ini[5]);
swap(ini[2], ini[4]);
swap(ini[2], ini[3]);
}
else if (str[i] == 'A')
{
swap(ini[0], ini[3]);
swap(ini[1], ini[2]);
swap(ini[2], ini[3]);
}
else if (str[i] == 'C')
{
swap(ini[0], ini[3]);
swap(ini[1], ini[2]);
swap(ini[0], ini[1]);
}
}
cout << ini << endl;
return 0;
}
调试结果:
输入:RA
输出 :436512