万圣节派对
时间限制:1000 ms | 内存限制:65535 KB
难度:1
-
描述
-
万圣节有一个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
c in,cout不过
01.#include<iostream>02.#include<string>03.#include<cmath>04.#include<cstdio>05.usingnamespacestd;06.intmain()07.{08.intn;09.scanf("%d",&n);10.while(n--)11.{12.string s;13.intt1,t2;14.scanf("%d%d",&t1,&t2);15.for(inti=t1;i<=t2;i++)16.{17.intf1=1,f2=1,f3=1;18.s[0]=i/100000+'0';19.s[1]=i/10000%10+'0';20.s[2]=i/1000%10+'0';21.s[3]=i/100%10+'0';22.s[4]=i/10%10+'0';23.s[5]=i%10+'0';24.for(intj=0;j<6;j++)25.if(s[j]-'0'>6)26.{27.f3=0;break;28.}29.for(intj=0;j<4;j++)30.if(s[j]-s[j+1]==0&&s[j]-s[j+2]==0)31.{32.f2=0;break;33.}34.for(intj=0;j<5;j++)35.if(fabs(s[j]-s[j+1])>4)36.{37.f1=0;break;38.}39.if(f1==1&&f2==1&&f3==1)40.{41.for(intj=0;j<6;j++)42.printf("%c",s[j]);43.printf("\n");44.}45.}46.printf("\n");47.}48.return0;49.}
-
本文介绍了一个用于生成符合特定规则的万圣节派对门票的算法,包括门票号的组成规则、数字限制以及相邻数字之间的差异要求。通过算法实现,可以高效地生成指定范围内的有效门票号码。

1378

被折叠的 条评论
为什么被折叠?



