当前位置: 首页 > news >正文

C++程序设计:今夕何夕,见此良人(经典题目)

【问题描述】

今天是2017年8月6日,农历闰六月十五。

小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。

【输入形式】

第一行为T,表示输入数据组数。

每组数据包含一个日期,格式为YYYY-MM-DD。其中1 ≤ T ≤ 10000, YYYY ≥ 0。

日期一定是个合法的日期。

【输出形式】

对每组数据输出答案年份,题目保证答案不会超过四位数。

【样例输入】

3
2017-08-06
2017-08-07
2018-01-01

【样例输出】

2023
2023
2024

#include <iostream>
using namespace std;
bool answer(int year) {
	bool x=0;
	if(year%4==0&&year%100!=0)
		x=1;
	if(year%400==0)
		x=1;
	return x;
}
void next(int year,bool x,bool y) {
	int sum=0;
	int count=0;
	do {
		if(answer(year+count)==false) {
			if (y==false) {
				if(answer(year+count+1)) {
					sum+=366;
					goto here;
				} else {
					sum+=365;
					goto here;
				}
			} else {
				sum+=365;
				goto here;
			}
		} else {
			if (y==false) {
				sum+=365;
				goto here;
			} else {
				sum+=366;
				goto here;
			}
		}
here:
		count++;
	} while(sum%7!=0);
	cout<<year+count<<endl;
}
int main() {
	bool x,y;
	int n=0,i,p1;
	char p2;
	cin>>n;
	int year[n];
	int month[n];
	for(i=0; i<n; i++) {
		cin>>year[i]>>p2>>month[i]>>p2>>p1;
	}
	for(i=0; i<n; i++) {
		y=false;
		x=answer(year[i]);
		if(month[i]<=2) y=true;
		next(year[i],x,y);
	}
	return 0;
}

相关文章:

  • DVBBS7.0变量列表
  • C++程序设计:求n个数的最大值、最小值及其出现的位置
  • C++程序设计:逆序数
  • 思量了许久还是决定做游戏
  • C++程序设计:小数化分数的算法与编程实现(经典问题)
  • 一些游戏开发站点
  • C++程序设计:挑棍子(判断线段是否相交的模板)
  • C++程序设计:月历
  • 春节的安排
  • 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(一)
  • 安全信息收集
  • 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(二)
  • 引擎的一些了解
  • 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(三)
  • 网管日志_Feb012005
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【剑指offer】让抽象问题具体化
  • Angular 响应式表单 基础例子
  • Brief introduction of how to 'Call, Apply and Bind'
  • ES6语法详解(一)
  • Java编程基础24——递归练习
  • leetcode386. Lexicographical Numbers
  • mysql中InnoDB引擎中页的概念
  • nginx 配置多 域名 + 多 https
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • php ci框架整合银盛支付
  • SpringBoot 实战 (三) | 配置文件详解
  • Vue 动态创建 component
  • Vultr 教程目录
  • 不上全站https的网站你们就等着被恶心死吧
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 离散点最小(凸)包围边界查找
  • 如何学习JavaEE,项目又该如何做?
  • 设计模式走一遍---观察者模式
  • 使用权重正则化较少模型过拟合
  • 微服务核心架构梳理
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 优秀架构师必须掌握的架构思维
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Mac 上flink的安装与启动
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #### go map 底层结构 ####
  • (4)(4.6) Triducer
  • (windows2012共享文件夹和防火墙设置
  • (二)windows配置JDK环境
  • (利用IDEA+Maven)定制属于自己的jar包
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)mysql_MYSQL(三)
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)汇编语言——简单程序
  • (转)负载均衡,回话保持,cookie
  • ./configure,make,make install的作用
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 8.0 发布到 IIS