任意输入一个整数,求0到输入的整数之间,二进制表示和十进制表示都为回文数的所有整数。
代码:
// GetHuiWen.java
import java.util.*;
/* 求用二进制和十进制表示都是回文数的数
* @author Xia Wei
* @author
[email protected] or
[email protected] */
//判断回文数
class Judgement {
// 判断十进制整数是回文数,成功返回true,失败返回false
public boolean Judgement1(int n) {
int k,a,m=0;
k=n;
while(k!=0) {
a=k%10;
m=m*10+a;
k=k/10;
}
return(m==n);
}
// 判断整数的二进制数是回文数,成功返回true,失败返回false
public boolean Judgement2(int m) {
// temp为装载整数的二进制表示数的临时变量
String temp="";
temp=Integer.toBinaryString(m);
// 字符数组d[],f[]帮助判断两字符串是否具有回文性
char d[]=new char[temp.length()];
char f[]=new char[temp.length()];
d=temp.toCharArray();
for(int j=d.length-1,u=0;j=0ud.length;j--,u++)
f[j]=d[u];
for(int v=0;vd.length;v++)
if(f[v]!=d[v])
return false;
return true;
}
}
//判断显示回文数的用户交互程序
public class GetHuiWen {
// 主函数
public static void main(String[] args) {
//创建判断回文数的对象实例
Judgement jt=new Judgement();
// 从终端输入一个整数
int value; // 将要输入的整数值
System.out.println("输入一个整数值,再回车:");
Scanner cin = new Scanner(System.in);
value = cin.nextInt();
// 使用判断回文数的对象实例,判断回文,并输出
System.out.println("从0到输入的整数"+value+"之间,整数和二进制
数都是回文数的为:");
for(int i=0;ivalue;i++)
if((jt.Judgement1(i))(jt.Judgement2(i))){
System.out.println(i+" (其二进
制"+Integer.toBinaryString(i)+")");
}
}
}
希望对你有帮助!