双基回文数
十进制数 585 对应的二进制表示是 1001001001,这两个数字都是回文数,称 585 是一个双
基回文数。求一百万以下所有双基回文数字之和。(注意回文数的首位都不能为零)
答案:872187
大致思路:
写一个判断是否是回文数的函数,写一个将十进制数转化为二进制的函数
代码如下:
public static boolean douhws(int n){
int t=n;
String s="";
while(t!=0){
s+=String.valueOf(t%2);
t=t/2;
}
StringBuffer s1=new StringBuffer(s);
StringBuffer s2=new StringBuffer(Integer.toString(n));
return s1.reverse().toString().equals(s)&&s2.reverse().toString().equals(Integer.toString(n));
}
public static void main(String[] args) {
int n=0;
for(int i=1;i<1000000;i++)
if(douhws(i)) n+=i;
System.out.println(n);
}
程序运行结果: