我刚刚学JAVA,我试着编了一点儿,有点乱,希望大家能不吝赐教,共同进步!
class Huiwenshu {
  public static void main(String[] args) {
    int low = 1, heigh = 300; //设定开始值low,结束值heigh
    int i = 0; //初始变量,存储用户输入的整数
    if (args.length == 0) { //判断用户是否输入参数,不带参数时执行区段low-height,查找回文数
      int count = 0;
      System.out.println(
          "判断某个整数是否是回文数:\n\t运行参数:\n\tjava Huiwenshu [int]\n\teg: java Huiwenshu 123\n");
      System.out.println("下面是从" + low + "到" + heigh + "的回文数:\n");
      for (i = low; i < heigh + 1; i++) {
        if (huiwen(i, weiShu(i))) {
          System.out.print(i + "  ");
          count++;
          if (count % 10 == 0) { //输出回文数,每10个一行
            System.out.println();
          }
        }
      }
    }
    else { //输入一个整数作为参数,则判断这个整数是否是回文数
      i = Integer.parseInt(args[0]);
      if (huiwen(i, weiShu(i))) {
        System.out.print(i + "是回文数");
      }
      else {
        System.out.println(i + "不是回文数");
      }
    }
  }  public static int weiShu(int m) { //计算整数的位数
    int weishutemp = m;
    int weishu1 = 1;
    for (; weishutemp / 10 > 0; ) {
      weishutemp = weishutemp / 10;
      weishu1++;
    }
    return weishu1;
  }  public static boolean huiwen(int j, int k) { //判断整数是否是回文数
    int n = j;
    StringBuffer strbuf1 = new StringBuffer();
    String str1 = "", str2 = "";
    for (int l = 0; l < k; l++, n /= 10) {
      strbuf1.append(String.valueOf(n % 10));
    }
    str1 = strbuf1.toString();
    str2 = strbuf1.reverse().toString();
    if (str1.equals(str2)) {
      return true;
    }
    else {
      return false;
    }
  }
}

解决方案 »

  1.   

    将此数转成String,然后最后一个和第一个比较,这样往中间比,一直到剩一个或0个不就可以了,看有没有不等的,一旦有就不是了,没有就是了。
      

  2.   

    class TestH{
    public static void main(String[] arg){
    int count=0;
    for(int i=1;i<3000;i++){
    String s=i+"";
    StringBuffer sb=new StringBuffer(s);
    if(sb.reverse().toString().equals(s))
    {
    count++;
    System.out.println(s);
    }
    }
    }
    }////////////////////////
    看看何不合适