Java实现选号码
选号码
Description
CF打算换个手机号码,但是他去营业厅选号码的时候却把移动的客服小姐烦得不行,因为他太挑三捡四啦。
对于一个手机号的后六位数字(前面五位他就无所谓了)CF有很严格的要求,具体如下:
0. 一定要有数字x。
- 不能有数字k。
- 这个六位数的大小在区间[l,r]内。
- 最少要有两个相邻的数字相同。
现在你需要计算出这后六位数字有多少组是符合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);
}
}
}