回文数增强版
题目:
如果把某个数的各个数字按相反的顺序排列,得到的数和原来的数相同,则这个数就是“回文数”。譬如 123454321 就是一个回文数。
问题:
求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数 10 的最小值。
思路:
1、数字转换为字符串
2、字符串翻转
3、数字的进制转换
难点:进制转换与字符串翻转
实现代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
int x=11;
for(;;) {
//十进制
String str1 = String.valueOf(x);
StringBuffer str2 = new StringBuffer(str1).reverse();
//System.out.println(str1+" "+str2);
//二进制
String str3 = Integer.toBinaryString(x);
StringBuffer str4 = new StringBuffer(str3).reverse();
//System.out.println(str3+" "+str4);
//八进制
String str5 = Integer.toOctalString(x);
StringBuffer str6 = new StringBuffer(str5).reverse();
//System.out.println(str5+" "+str6);
if(str1.equals(str2.toString())&&str3.equals(str4.toString())&&str5.equals(str6.toString())) {
System.out.println(x);
break;
}
else x=x+2;
}
}