生成区间a-b的回文数

生成区间a-b的回文数

描述:给定区间a-b生成区间内的所有回文数(不考虑数据溢出)

代码

ArrayList<Integer> HuiwenNum(int a,int b){
		int lowBit=(int)Math.log10(a)+1;
		int highBit=(int)Math.log10(b)+1;
		ArrayList<Integer> res=new ArrayList<Integer>();
		//生成长度为len的回文质数
		for(int len=lowBit;len<=highBit;len++) {
			int mid=len/2;
			for(int i=(int) Math.pow(10,mid-1);i<Math.pow(10, mid);i++) {
				int pre=i;
				int last=reverse(pre);
				if(len%2==1) {
					for(int j=0;j<=9;j++) {
						int curNum=pre*10+j;
						curNum=curNum*(int)Math.pow(10, mid);
						curNum+=last;
						if(curNum>=a && curNum<=b) res.add(curNum);
					}
				}
				else {
					int curNum=pre*(int)Math.pow(10,mid);
					curNum+=last;
					if(curNum>=a && curNum<=b) res.add(curNum);
				}
			}
		}
		return res;
}
上一篇:PTA 1038 统计同成绩学生


下一篇:1038:苹果和虫子