上一篇介紹了Bangla Numbers,由於數字太大,所以選擇使用了BigInteger,但各位也可以選擇使用字串方式來寫,在判斷上都一樣,但BigInteger樣提前判斷,在比判斷出來的大小來當作基準來判斷。
今天講解的題目是Die Game
先附上程式碼:
import java.util.;
import static java.lang.System.;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int A=1,N=2,E=4,S=5,W=3;
int a=sc.nextInt();
if(a==0) break;
for(int i=0 ;i<a;i++){
String b=sc.next();
if(b.equals("north")){
N=A;
A=S;
S=7-N;
}else if(b.equals("south")){
S=A;
A=N;
N=7-S;
}if(b.equals("east")){
E=A;
A=W;
W=7-E;
}if(b.equals("west")){
W=A;
A=E;
E=7-W;
}
}
System.out.println(A);
}
}
};
這題在練習時有附上中文翻譯,所以在題目理解上就比較簡單了,題目也有說:[但是你應該要知道一個定律:對一顆骰子而言,相對的2面上的點數和總是等於7],所以只要一個轉方向,只需要改變正上方以及相對方位的數字就可以了,只要讓轉的方向未知的那格改為7-正上方的位子,就可以得出不知道的那格了,假設正上方是1(A)、南是5(S)、北是2(N),往北轉一次,就是N=A(1)、
A=S(5)、S=7-N,因為不知道什麼數字轉上來,所以使用相對位置和等於7的公式來判斷,所以S會變成6。
今天的講解就到這裡。
明天也是新的題目,會介紹Substitution Cypher,繼續加油!