万圣节派对
来源:互联网 发布:珂莱欧淘宝旗舰店 编辑:程序博客网 时间:2024/05/16 23:34
问题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=733
万圣节派对
时间限制: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
来源
NBOJ-1004
上传者
勿念情
问题分析:
输入的数字在int的范围内(32位系统int范围为min:-2的31次方 -2147483648 max:2的31次方 2147483647),所以可以直接存放在int里。
之后对每一个之间的数字进行检查是否符合条件即可。
#include <iostream>#include <stdio.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int abs(int x){ if(x<0){ return -x; } return x;}bool check(int p){ int num[6]; int count = 6; for(int i=0;i<count;i++){ num[i] = p%10; p/=10; } /* 每一位数字都要小于6 一个门票号的每一位不能有三个连续相同的数字(如123335是不行的) 每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的) */ if(num[0]<0 || num[0]>6) { return false; } for(int i=5;i>=1;i--){ if(num[i]<0 || num[i]>6) { return false; } if(i>1 && num[i] == num[i-1] && num[i-1] == num[i-2]){ return false; } if(abs(num[i]-num[i-1])>4){ return false; } } return true;}int main(int argc, char** argv) { int n; scanf("%d",&n); while(n--){ int a,b; scanf("%d %d",&a,&b); for(int i=a;i<=b;i++){ if(check(i) == true){ printf("%06d\n",i); } } printf("\n"); } return 0;}
阅读全文
0 0
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节派对
- 万圣节的派对 nyist733
- nyist-733-万圣节派对
- NYOJ--万圣节派对
- NYOJ_733万圣节派对
- MySQL系列—修改多张分表的相同字段
- a different object with the same identifier value was already associated with the session 问题解决
- jmeter配置
- Android性能优化:ViewStub
- ios 建立pods库发布代码到cocoapods上
- 万圣节派对
- SNAT与DNAT
- Lua 执行命令行获取文件MD5值
- JUC集合-06之 ConcurrentSkipListSet
- gulp使用
- table某个单元格,显示文字太多则隐藏,点击则显示
- oracle中lob类型学习
- java基础(三):多线程
- 大流量网站的三种Mysql数据库扩展方式