对数计数器 | |
描述: | 小明在使用一个计数器,计数范围0~999999,小明第一次看计数器的时候,其读数为一个对数(即正反读是一样的,如12321),当出现下一个对数的时候,小明停止了计数。 输入小明看到的第一个对数,请输出计数数量(即第二个对数跟第一个对数的差值)。注意,计数器达到999999后,会重新从0开始。 |
运行时间限制: | 无限制 |
内存限制: | 无限制 |
输入: | 输入一个整数0~999999 |
输出: | 输出计数数量,非负整数 |
样例输入: | 123321 |
样例输出: | 1100 |
直接计算
import java.util.*;public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ int x = in.nextInt(); int count = getCount(x); System.out.println(count); } in.close(); } public static int getCount(int num){ int count = 0; while(num<=999999){ num++; if(num==1000000){ num=0; count++; break; } if(!isPail(num)){ count++; }else{ count++; break; } } return count; } public static boolean isPail(int num){ if(num<=9) return true; int p = 1; int x = num; while(x>9){ x/=10; p*=10; } while(num>=10){ int l = num/p; int r = num%10; if(l!=r) return false; num%=p;// 去除第一位数 num/=10;// 去除最好一位数 p=p/100; } return true; }}
这个应该可以找出来规律的