第八屆藍橋杯JAVAB組第四題
阿新 • • 發佈:2019-01-23
題目大概是,
有一個魔方,上 黃色 | 下 橙色 | 左 綠色 | 右 綠色 | 前 橙色 | 後 黃色
問魔方總共有多少種狀態。
我的答案:216
我的思路:剛拿到這題有點懵逼,簡單分析了一下,其實魔方總共八塊,這八塊其實就三種顏色
4塊是綠黃橙,2塊是綠橙橙,2塊是綠黃黃。
我們就可以把該題簡化為四個1,兩個2,兩個3的排序問題。
需要注意的是11112233和33221111是一樣的。
程式碼如下:
static int[] v = new int[8]; static int[] s = new int[8]; static ArrayList<String> a = new ArrayList<String>(); public static void main(String[] args) { s(0); System.out.println(a.size()); } public static void s(int code){ if(code==8){ String t = ""; String t1 = "";//t正序,t1倒序 for (int i = 0; i < s.length; i++) { t += s[i]+""; t1 += s[s.length-1-i]+""; } if(!a.contains(t)&&!a.contains(t1)){ a.add(t); } return; } for (int i = 0; i < 8; i++) { if(v[i]==0){ v[i] = 1; if(i<4){ s[code] = 1; } else if(i<6){ s[code] = 2; } else if(i<8){ s[code] = 3; } s(code+1); v[i] = 0; } } }