其他分享
首页 > 其他分享> > 生成区间a-b的回文数

生成区间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