师姐的测试岗笔试题,拿来记录一下:
题目描述:
一个整数如果由相同数字构成,可以称为完美整数,比如说1,11,333就是完美整数,12,19,101就不是完美整数。
现在想知道,在区间[x,y]中有多少个数是完美整数。
输入描述:
第一行t[1,1000],表示接下来有t个样例:
每个样例有一行,是整数x和y,(1<=x<=y<=10^9)
输出描述:
每个样例一行,是整数m,表示区间[x,y]中有m个整数是完美整数。
写的有点麻烦了。
public static int getThePerfectNums(String s){ int res=0; String [] bondary=s.split(" "); int x=Integer.valueOf(bondary[0]); int y=Integer.valueOf(bondary[1]); if(y<x) return res; for(int i=x;i<=y;i++) { int num1=i%10; if(num1==0) continue; int num2=num1; while(i>=num2) { if(num2==i) { res++; break; } else num2=num2*10+num1; } } return res; } public static void main(String[] args) { System.out.print("请输入t: "); Scanner input = new Scanner(System.in); int t = input.nextInt(); String [] boundary=new String[t]; System.out.print("开始输入样例: "); Scanner boundar = new Scanner(System.in); for(int i=0;i<t;i++) boundary[i]= boundar.nextLine(); List<Integer> res=new LinkedList<>(); for(String s :boundary) res.add(getThePerfectNums(s)); for(int i=0;i<res.size();i++) System.out.println(res.get(i)); }