题目
转动魔方
题目描述
二阶魔方有6个不同颜色的面,分别是红(Red),橙(Orange),黄(Yellow),白(White),蓝(Blue)和绿色(Green),
每个面都有 4个小正方块拼成
初始状态:魔方已经还原,并且W色朝下,Y色向上,R色在前,O色在后,B色左边,G色右边。
定义三种旋转操作:
输入说明
以命令行参数的形式,输入任意的旋转操作字符串序列, 如 XYZZX
int main(int argc, char* argv[])
{
char* input = argv[1];
…
return 0;
}
输出说明
在初始状态下,经过输入序列的操作后,依次输出正面的4个小方块的颜色
示例1
输入:
XZY
输出:
GORW
示例2
输入:
XY
输出:
GGRW
思路
- 这是一道完全模拟的题目,把数据结构和操作定义出来就行了。
- 先定义了24个char型代表其24个小面,从 1 到 24,每4个组成一个大面:
- 根据定义,写旋转操作。
代码
#include <iostream>
#include <fstream>
#include <functional>
#include <algorithm>
#include <string.h>
#include <list>
#include <vector>
using namespace std;
void getResult();
void init();
void reX();
void reY();
void reZ();
void reZheng(char &c1, char &c2, char &c3, char &c4);
void reChe(char &c1, char &c2, char &c3, char &c4, char &c5, char &c6, char &c7, char &c8);
char* m = new char