魔方可以對它的6個面自由旋轉。
我們來操作乙個2階魔方(如圖1所示):
為了描述方便,我們為它建立了座標系。
各個面的初始狀態如下:
x軸正向:綠
x軸反向:藍
y軸正向:紅
y軸反向:橙
z軸正向:白
z軸反向:黃
假設我們規定,只能對該魔方進行3種操作。分別標記為:
x 表示在x軸正向做順時針旋轉
y 表示在y軸正向做順時針旋轉
z 表示在z軸正向做順時針旋轉
xyz 則表示順序執行x,y,z 3個操作
題目的要求是:
從標準輸入獲得乙個串,表示操作序列。
程式輸出:距離我們最近的那個小方塊的3個面的顏色。
順序是:x面,y面,z面。
例如:在初始狀態,應該輸出:
綠紅白初始狀態下,如果使用者輸入:
x則應該輸出:
綠白橙初始狀態下,如果使用者輸入:
zyx則應該輸出:
紅白綠請程式設計實現所述功能。
解題思路:
對題目給定的各個面標上序號,如圖所示:
用二維陣列 a 儲存魔方顏色,另設乙個陣列 b 儲存變換之前的魔方顏色(這裡要注意,因為 a 陣列是在變化的);
然後分別對 x/y/z 這三種變換情況進行模擬(詳見**),題目要求的顏色應當是 x 面的右上角那個小方塊的前/左/上三個面的顏色。
(水平及思路所限,**醜陋請見諒啦…(づ。◕‿‿◕。)づ)
#include #include #include #include using namespace std;
int a[6][4];
int b[6][4];
void init()
void color(int c)//根據數字輸出顏色
}void solvex()//x旋轉
void solvey()//y旋轉
void solvez()//z旋轉
int main()
color(a[0][3]);
color(a[2][0]);
color(a[4][1]);
return 0;
}
藍橋杯 二階魔方旋轉 暴力法
魔方可以對它的6個面自由旋轉。我們來操作乙個2階魔方 如圖1所示 為了描述方便,我們為它建立了座標系。各個面的初始狀態如下 x軸正向 綠 x軸反向 藍 y軸正向 紅 y軸反向 橙 z軸正向 白 z軸反向 黃 假設我們規定,只能對該魔方進行3種操作。分別標記為 x 表示在x軸正向做順時針旋轉 y 表示...
Pocket Cube二階魔方
hdu5983的一道題,看錯了輸入,看了題解發現用一位陣列存比較方便。開兩個24的陣列存完直接暴力交換就完事了,搞了兩個小時,才發現這麼簡單,真是自閉魔方。include using namespace std int a 30 b 30 int isok return1 void cpy intm...
特殊的二階魔方
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述魔方大家應該都玩過。現在有乙個特殊的二階魔方,它只有一面是白色,其餘五個面全是黑色。玩這個魔方當然也有特殊的規則,玩家只能通過六種方式去改變它,底層向左轉一格 稱為dl 底層向右轉一格 稱為dr 右側向上轉一格 稱為ru 右側向...