万圣节派对

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

猜你喜欢

转载自blog.csdn.net/xiaoli130134/article/details/80547016