ZZULI - 小新三連(三):小新在求助
題目連結:http://acm.zzuli.edu.cn/problem.php?id=2483
時間限制: 1 Sec 記憶體限制: 128 MB
題目描述
小新回到機房後,刷了很多的題,但是他現在碰到了一道難題,無法解決,所以他想尋求你的幫助.問題是這樣的,有一個魔方,魔方包含六種圖案,可以分別表示為六個數字,問小新能不能在有限步數之內將魔方還原為所有面同色的狀態,小新感覺頭都大了。
由於那道題目的輸入只包含數字,小新看的頭都暈了,所以小新想讓你幫他畫出魔方的某一面,以方便自己觀察魔方的狀態。魔方的每一面包括九個格子,每個格子為3*3的大小,1、2、3、4、5、6所代表的圖案分別為@、*、^、$、&、o。
輸入
第一行輸入一個數T,代表輸入的測試樣例的組數.每組資料三行,每行有空格分隔三個數字n(1<=n<=6),魔方的某一面對應的格子的圖案。
輸出
對於每個樣例將魔方的那個面打印出來,兩組樣例之間需要有空行分隔.具體格式請參照樣例輸出。
樣例輸入
2
1 2 3
1 2 3
1 2 3
5 6 3
6 1 3
5 2 5
樣例輸出
@@@|***|^^^
@@@|***|^^^
@@@|***|^^^
-----------
@@@|***|^^^
@@@|***|^^^
@@@|***|^^^
-----------
@@@|***|^^^
@@@|***|^^^
@@@|***|^^^
&&&|ooo|^^^
&&&|ooo|^^^
&&&|ooo|^^^
-----------
ooo|@@@|^^^
ooo|@@@|^^^
ooo|@@@|^^^
-----------
&&&|***|&&&
&&&|***|&&&
&&&|***|&&&
解題思路
這一題就是個水題,只要按要求把圖形打印出來就行了(每個數字代表一個3*3的圖形)。
#include <stdio.h> char a[8] = {0, '@','*', '^', '$', '&', 'o'}; int main() { int t, s[5][5]; scanf("%d", &t); while (t--) { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) scanf("%d", &s[i][j]); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 9; k++) { if (!(k % 3) && k) printf("|"); printf("%c", a[s[i][k / 3]]); } printf("\n"); } if (i != 2) { for (int j = 0; j < 11; j++) printf("-"); printf("\n"); } } if (t) printf("\n"); } return 0; }