万圣节派对

来源:互联网 发布:变脸视频是什么软件 编辑:程序博客网 时间:2024/04/28 03:28

万圣节派对

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述

万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:

  1. 门票号是由0~6组成的六位数(0~6这几个数字可重用)

  2. 每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)

  3. 每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)

输入
第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)
输出
对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。
样例输入
2001001 001002001011 001012
样例输出
001001001002001011001012
来源
NBOJ-1004
上传者
勿念情
import java.util.Scanner;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int n = sc.nextInt();while (n-- > 0) {int x = sc.nextInt();int y = sc.nextInt();if (y >= 666666)y = 666666;int[] arr = new int[8];for (int i = x; i <= y; i++) {arr[5] = i % 10;arr[4] = i / 10 % 10;arr[3] = i / 100 % 10;arr[2] = i / 1000 % 10;arr[1] = i / 10000 % 10;arr[0] = i / 100000;int j;for (j = 0; j <= 5; j++) {if (arr[j] > 6)break;if (arr[j] == arr[j + 1] && arr[j + 1] == arr[j + 2]&& j <= 3)break;else if (Math.abs(arr[j] - arr[j + 1]) > 4 && j <= 4)break;}if (j == 6)System.out.printf("%06d\n", i);}if (n != 0)System.out.println();}}}


0 0
原创粉丝点击