描述
万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:
门票号是由0~6组成的六位数(0~6这几个数字可重用)
每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)
每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)
输入
第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)
输出
对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。
样例输入
2
001001 001002
001011 001012
样例输出
001001
001002
001011
万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:
门票号是由0~6组成的六位数(0~6这几个数字可重用)
每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)
每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)
输入
第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)
输出
对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。
样例输入
2
001001 001002
001011 001012
样例输出
001001
001002
001011
001012
#include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int N,m,n,i,h,result,j=0,t=0,k=6,g; scanf("%d",&N); while(N--) { char a[10000]; scanf("%d %d",&m,&n); for(i=m;i<=n;i++) { k=6; result=1; g=i; t=0; while(k--) { a[t]=g%10+'0'; t++; g=g/10; } for(j=0;j<6;j++) { if(j==0) { if(a[j]-'0'>6) { result=0; break; } continue; } if(a[j]-'0'>6) { result=0; break; } if(abs((a[j]-'0')-(a[j-1]-'0'))>4) { result=0; break; } } for(j=0;j<4;j++) { if(a[j]==a[j+1]&&a[j]==a[j+2]) { result=0; break; } } if(result) { for(j=5;j>=0;j--) { printf("%c",a[j]); } printf("\n"); } } printf("\n"); } return 0; }