设计一个算法,判断一个正的n(n>2)位数是不是回文数,用自然语言描述算法步骤

回文数是指从左道右读与从右往左读都是一样的正整数,如121,676,94249

第1个回答  2013-09-23
任意输入一个整数,求0到输入的整数之间,二进制表示和十进制表示都为回文数的所有整数。 代码:// GetHuiWen.javaimport 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>=0&&u<d.length;j--,u++) f[j]=d[u]; for(int v=0;v<d.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;i<value;i++) if((jt.Judgement1(i))&&(jt.Judgement2(i))){ System.out.println(i+" (其二进制"+Integer.toBinaryString(i)+")"); } }} 希望对你有帮助!
第2个回答  2013-09-23
1、输入一个位数大于2的正整数;2、保存这个数;3、将这个数转换为字符串并测量长度,然后拆成字符串数组;4、将数组顺序倒转后在转换为字符串,再将字符串转换为正数;5、比较两个数数否相等。
相似回答