openjudge------ 日期的种类题目
描述
TXT is a vegetable chicken,so 出题什么的完全不会啊!
干脆直接从网络上copy一题下来吧。
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。
比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。
给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?
输入
一个日期,格式是"AA/BB/CC"。 (0 <= A, B, C <= 9)
输出
输出若干个不相同的日期,每个日期一行,格式是"yyyy-MM-dd"。多个日期按从早到晚排列。
样例输入
02/03/04
样例输出
2002-03-04
2004-02-03
2004-03-02
思路:
因为日期只有三类,所以只需要分成三类讨论,然后对每一种结果判断是否符合,并且排序后输出就可以了。
#include<stdio.h>
#include<string.h>
int one[]={,,,,,,};
int two[]={,,,};
int get(char ch[],int aa,int bb){
return (ch[aa]-'')*+ch[bb]-'';
}
int run(int n){
if((n% == &&n% != )||(n% == )){
return ;
}
return ;
}
int in(int n,int a[],int len){
int i;
for(i=;i<len;i++){
if(a[i]==n){
return ;
}
}
return ;
}
int can(int a,int b,int c){ //检查以a,b,c为年月日合法不
int temp;
if(a>=){
temp = +a;
}else{
temp = +a;
}
if(b>=&&b<=){
if(c>=&&c<=){
if((c==&&!(run(temp)&&b==))||(c==&&!(!run(temp)&&b==))){
return ;
}
else if(c==&&!in(b,one,)){
return ;
}
else if(c==&&!in(b,two,)){
return ;
}else{
return ;
}
}else{
return ;
}
}else{
return ;
}
}
void change(int &a,int &b,int &c){
int max = a>b?a:b;
int min = a>b?b:a;
max = max>c?max:c;
min = min>c?c:min;
b = a+b+c-max-min;
a = min;
c = max;
}
int main(){
char str[];
gets(str);
int a,b,c,t1=,t2=,t3=;
a = get(str,,);
b = get(str,,);
c = get(str,,);
if(can(a,b,c)){
if(a>=)
t1 = +a*+b*+c;
else
t1 = +a*+b*+c;
}
if(can(c,a,b)){
if(c>=)
t2 = +c*+a*+b;
else
t2 = +c*+a*+b;
}
if(can(c,b,a)){
if(c>=)
t3 = +c*+b*+a;
else
t3 = +c*+b*+a;
}
if(a==b){
t3 = ;
}
if(a==b&&b==c){
t2 = ;
}
change(t1,t2,t3);
if(t1)
printf("%0.2d-%0.2d-%0.2d\n",t1/,t1%/,t1%);
if(t2)
printf("%0.2d-%0.2d-%0.2d\n",t2/,t2%/,t2%);
if(t3)
printf("%0.2d-%0.2d-%0.2d\n",t3/,t3%/,t3%);
return ;
}
openjudge------ 日期的种类题目的更多相关文章
- Java日期的格式String类型GMT,GST换算成日期Date种类
请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/articl ...
- 二分 题目 压缩打包 Special Judge? 不不不 当然不是
http://noi.openjudge.cn/ch0111/ No 题目 分数 01 查找最接近的元素 10 3176 02 二分法求函数的零点 10 2181 03 矩形分割 10 1420 04 ...
- OpenJudge计算概论-比饭量【枚举法、信息数字化】
/*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...
- DB2中字符、数字和日期类型之间的转换
DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别 ...
- OpenJudge / Poj 1003 Hangover
链接地址: Poj:http://poj.org/problem?id=1003 OpenJudge:http://bailian.openjudge.cn/practice/1003 题目: Han ...
- OpenJudge 2737 大整数除法
链接地址:http://bailian.openjudge.cn/practice/2737/ 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 求2个大的正整数相除的商 输入 第 ...
- OpenJudge 2980 大整数乘法
链接地址:http://bailian.openjudge.cn/practice/2980/ 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的积 ...
- OpenJudge / Poj 1044 Date bugs C++
链接地址: Poj:http://poj.org/problem?id=1044 OpenJudge:http://bailian.openjudge.cn/practice/1044/ 题目: 总时 ...
- OpenJudge 2680 化验诊断 C++
链接地址:http://bailian.openjudge.cn/practice/2680 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 下表是进行血常规检验的正常值参考范围 ...
随机推荐
- JSTL配置文件下载地址
Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip). 官方下载地址:http:/ ...
- 1.1.4 PROB Greedy Gift Givers
Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...
- PHP新特性Trait
Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么:提供模块化实现.Trait ...
- Vue的基本使用
VUE vue挂载点 el:"标签id" vue绑定属性 :v-model:"属性值" vue绑定事件 @click:"事件名" vue基本 ...
- ubuntu16.04 uninstall cuda 9.0 completely and install 8.0 instead
卸载cuda 9.0sudo apt-get --purge remove cudasudo apt autoremoveto remove cuda 9.0 Thensudo apt-get cle ...
- 涨姿势:Spring Boot 2.x 启动全过程源码分析
目录 SpringApplication 实例 run 方法运行过程 总结 上篇<Spring Boot 2.x 启动全过程源码分析(一)入口类剖析>我们分析了 Spring Boot 入 ...
- pycharm中配置启动Django项目
1.先打开mange.py,然后再运行,会提示一堆东西,表示没有配置参数.在pycharm中点击edit configurations 编辑配置参数. 2.点开之后弹出如下对话框,在scrip par ...
- 记录js new Date日期处理的一个坑
记录js日期处理的一个坑 当前时区为北美东部时区时, new Date('2019-4-1') new Date('2019-04-01') 结果是相关一个月的. 如下图 new Date(' ...
- Spring框架(2)---IOC装配Bean(xml配置方式)
IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicat ...
- Spring Boot 系列(六)web开发-Spring Boot 热部署
Spring Boot 热部署 实际开发中,修改某个页面数据或逻辑功能都需要重启应用.这无形中降低了开发效率,所以使用热部署是十分必要的. 什么是热部署? 应用启动后会把编译好的Class文件加载的虚 ...