如何在一个范围内找出所有的回文数?

/*
现在给定一个闭区间[a,b],求这个区间里有多少个回文数。 比如[20,30],只有一个回文数那就是22.   
输入描述:    输入包含多组测试数据,每组测试数据包含两个整数a,b, (0<a<=b<10^6)。
输出描述:    对于每组测试数据输出相应的答案。

*/

原本以为这道题是非常简单的,但开始做的时候还是有点棘手,主要问题是引用传递,把值传给谁?通过层层回顾和大胆探索,终于做出来了!可能代码还不够简洁,大家觉得哪里还可以修改,指点一下哈!谢谢!

import java.util.Scanner;
class  HuiWenShu
{
private  static final int MAX=1000000;          //定义最大值
private static final int MIN=1;                //定义最小值
public static void main(String[] args) 
{
Scanner s=new Scanner(System.in);
System.out.println("请输入一个区间:");
while(true){
int a=s.nextInt(),b=s.nextInt();

doit(a,b);

}
}
public static void doit(int a,int b)             //以区间头作为参数的方法,求出该区间中的所有回文数
{
if(a>b||a<MIN||b>MAX)                      //判断是否符合区间范围,如果不符合,结束异常
throw new ArithmeticException("区间不符");

int s=0;
System.out.print("区间["+a+","+b+"]的回文数有:");
while(a<=b){            
int c=a;
int temp=c;
while(c!=0){     
s=s*10+c2%10;
c=c/10;
}
if(s==temp){
System.out.print(temp+" ");
}
a++;
s=0;
}
}
}

猜你喜欢

转载自blog.csdn.net/huangxuanheng/article/details/28914389