双基回文数
十进制数 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); }
程序运行结果: