百度之星初赛(A)——T5
2024-10-19 08:48:23
今夕何夕
Problem Description
今天是2017年8月6日,农历闰六月十五。
小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。
为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。
小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
Input
第一行为T,表示输入数据组数。
每组数据包含一个日期,格式为YYYY-MM-DD。
1 ≤ T ≤ 10000
YYYY ≥ 2017
日期一定是个合法的日期
Output
对每组数据输出答案年份,题目保证答案不会超过四位数。
Sample Input
3
2017-08-06
2017-08-07
2018-01-01
Sample Output
2023
2023
2024
————————————————————————
2月29日需要一波特判
其他的话如果月是2月29前他就会受今年是否为闰年的影响
不然就受到明年是否是闰年的影响
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int T,n,y,r,ans;
char s[];
int pd(int x){
if(x%==) return ;
if(x%==&&x%!=) return ;
return ;
}
int main()
{
T=read();
while(T--){
scanf("%d-%d-%d",&n,&y,&r);
int k=;
if((y<=&&r<)||(y<=)){
for(int i=n+;;i++){
if(pd(i-)) k+=;
else k++;
if(k%==){ans=i;break;}
}
}
else if(y>){
for(int i=n+;;i++){
if(pd(i)) k+=;
else k++;
if(k%==){ans=i;break;}
}
}
if(y==&&r==){
for(int i=n+;;i+=){
if(!pd(i)) k+=;
else k+=;
if(pd(i)&&k%==){ans=i;break;}
}
}
printf("%d\n",ans);
}
return ;
}
最新文章
- 【转载】使用pandas进行数据清洗
- mysql遇到锁表常用命令
- checkedListBox
- java8 中的时间和数据的变化
- iOS开发——UI进阶篇(十四)modal
- 基于Node.js + jade + Mongoose 模仿gokk.tv
- Notepad++ Shortcuts 快捷键
- style=";display";之后不能获取offsetHeight或clientWidth这类测量的值
- Redis多机功能介绍
- springmvc在web.xml中的配置
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)
- 前端利器,如何使用fiddle拦截在线css进行先下调试
- rtmp流媒体搭建的所需安装包
- java -cp通配符
- 2019 年 Spread.NET 产品路线图(Roadmap)
- php首字母 大写 数组去重复
- suricata 原文记录
- 复刻smartbits的国产网络性能测试工具minismb-如何配置Ping报文
- Android 程序打包及签名(转)
- 15、高可用 PXC(percona xtradb cluster) 搭建