生成区间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;
}
标签:pre,int,mid,len,生成,curNum,区间,Math,回文 来源: https://blog.csdn.net/qq_47373183/article/details/113595191