描述
万圣节有一个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;
}