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 描述 下表是进行血常规检验的正常值参考范围 ...
随机推荐
- JAVA核心技术第一卷第三章
JAVA中包含的数据类型:
- #221 Iterate Through an Array with a For Loop
迭代输出一个数组的每个元素是 JavaScript 中的常见需求, for 循环可以做到这一点. 下面的代码将输出数组 arr 的每个元素到控制台: var arr = [10,9,8,7,6];fo ...
- Core统一日志处理
新建一个Core的Web项目,然后创建相关文件等 添加一个处理错误的类库ErrorMiddleware 下面是该类库的代码 public class ErrorMiddleware { stati ...
- SpringBoot中集成redis
转载:https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html 不是使用注解而是代码调用 需要在springbo ...
- Java异常处理 10 个最佳实践
异常处理是Java 开发中的一个重要部分.它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch 和 ...
- 如何写一个适配iPhoneX的底部导航
引言 iPhoneX发布至今已经有将近一年的时间了,各类app都多多少少做了对iPhoneX的适配,那对于我们H5页面该做哪方面的适配呢? 首先了解安全区域(safe area)的概念,它保证了内容在 ...
- python学习的准备工作
1.python安装 1.下载: https://www.python.org/downloads/windows/ 2.安装: 安装很简单,就是下一步,只是在最后要勾选上 Add Python 3. ...
- [ncw7] 小睿睿的方案
考虑一对情侣(x,y)x<y的贡献,设in[x],out[x]为数的dfs序. 强制从x走向y方向 当in[x]<in[y]且out[y]<=out[x] 矩形{1,in[x],in ...
- .NET Core 如何调用 WebService
0.使用背景 因为现在的项目都是基于 .NET Core 的,但是某些需要调用第三方的 WebService 服务,故有了此文章.其基本思路是通过微软提供的 Svcutil 工具生成代理类,然后通过 ...
- 深入理解OkHttp源码(二)——获取响应
首先先看一张流程图,该图是从拆轮子系列:拆 OkHttp 中盗来的,如下: 在上一篇博客深入理解OkHttp源码(一)——提交请求中介绍到了getResponseWithInterceptorChai ...