Java实现选号码

选号码

Description
CF打算换个手机号码,但是他去营业厅选号码的时候却把移动的客服小姐烦得不行,因为他太挑三捡四啦。
对于一个手机号的后六位数字(前面五位他就无所谓了)CF有很严格的要求,具体如下:
0. 一定要有数字x。

  1. 不能有数字k。
  2. 这个六位数的大小在区间[l,r]内。
  3. 最少要有两个相邻的数字相同。
    现在你需要计算出这后六位数字有多少组是符合CF要求的。

Input
输入文件的第一行是一个正整数T,表示总共有T组数据。
接下来有T行(T组数据),每行有四个正整数x,k,l,r。0<=l<=r<=999999,0<=x,k<=9。

Output
每行输出一个整数,对应该组测试数据的答案(符合要求的号码数)。

Sample Input
2
1 2 100000 100010
1 4 0 20

Sample Output
10
10

package 第七次模拟;

import java.util.Scanner;

public class Demo5手机号 {
	public static void main(String[] args) {
		Scanner sc  =new Scanner(System.in);
		int count = sc.nextInt();
		while(count-->0){
			int x = sc.nextInt();
			int k = sc.nextInt();
			int l =sc.nextInt();
			int r = sc.nextInt();
			int sum = 0;
			for (int i = l; i <=r; i++) {
				
				StringBuilder sb = new StringBuilder(i+"");
				while(sb.length()!=6){
					sb.insert(0,"0");
				}
				if(sb.indexOf(x+"")==-1 ||sb.indexOf(k+"")!=-1){
					continue;
				}
				boolean flag =false;
				 for (int j = 1; j <sb.length(); j++) {
					if(sb.charAt(j-1)==sb.charAt(j)){
						flag=true;
						break;
					}
				}
				 if(flag) sum++;
			}
			System.out.println(sum);
		}
	}

}

posted @ 2020-03-02 16:41  南墙1  阅读(19)  评论(0编辑  收藏  举报