上一篇介紹了The Huge One,這題因為數字太大,所以選擇使用了BigInteger,當然各位也可以不使用這個方法,但我覺得這方法比較方便,可以直接除,接下來只需要在判斷要怎麼輸出就可以咯。
今天講解的題目是Palindromes
先附上程式碼:
import java.util.;
import static java.lang.System.;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char b[]={'A','E','H','I','J','L','M','O','S','T','U','V','W','X','Y','Z','1','2','3','5','8'};
char B[]={'A','3','H','I','L','J','M','O','2','T','U','V','W','X','Y','5','1','S','E','Z','8'};
while(sc.hasNext()){
StringBuilder A=new StringBuilder(sc.next());
StringBuilder a=new StringBuilder("");
for(int i=0;i<A.length();i++){
int C=-1;
for(int j=0;j<b.length;j++){
if(A.charAt(i)==b[j]){
C=j;
break;
}
}
if(C!=-1)a.append(B[C]);
else a.append(' ');
}
String Q=A.toString();
String q=a.toString();
A.reverse();
a.reverse();
if(Q.equals(a.toString())){
if(q.equals(a.toString())) System.out.println(Q+" -- "+"is a mirrored palindrome.");
else System.out.println(Q+" -- "+"is a mirrored string.");
}else{
if(Q.equals(A.toString())) System.out.println(Q+" -- "+"is a regular palindrome.");
else System.out.println(Q+" -- "+"is not a palindrome.");
}
System.out.println("");
}
}
}
今天的講解就到這裡。
明天也是新的題目,會介紹The 3n + 1 problem ,繼續加油!