洛谷P1202 [USACO1.1]黑色星期五Friday the Thirteenth

[USACO 1.1] 黑色星期五 Friday the Thirteenth(c++) 给出 n 年的一个周期,要求计算 1900 年 11 月 11 日至 1900+n−1 年 12 月 31 日中十三号落在周一到周日的次数。4、以上规则不适合于世纪年。所以,1700,1800,1900,2100 年是平年,而 2000 年是闰年。2、4,6,11 和 9 月有 30 天,其他月份除了 2 月都有 31天,闰年 2月有 29 天,平年 2 月有 28天。3、年份可以被 4 整除的为闰年 ( 1992=4∗498 所以 1992 年是闰年,但是 1990 年不是闰年 )。 阅读详情

题目传送门:                https://www.luogu.com.cn/problem/P1202https://www.luogu.com.cn/problem/P1202

思路:

1、一天一天累加天数

2、如果“星期几”大于7,回到星期一

3、打表每个月天数,有平年和闰年两个表

4、超出这个月天数后月份加一,日期归一,就是说该下一个月了

      这时,要判断闰年,利用打的表确定该月天数

5、超出十二个月后,年份加一,月份归一,要继续新的一年了

6、每到13日,周几的数组就加一

7、到指定年份后停止,再指定年份的下一年一月一日结束

8、最后,按日、一、二、三、四、五、六的顺序输出即可

上代码:

#include <bits/stdc++.h>

using namespace std;

int n, day, month, year, week;
bool ch;
int weekday[8];
int form[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

bool f (int t) {
	if (t % 4 == 0 && t % 100 != 0 || t % 400 == 0) return true;
	return false;
}

int main () {
	
	cin >> n;
	
	year = 1900; day = month = week = 1;
	
	while (!(year == 1900 + n && month == 1 && day == 1)) {
		if (f(year)) ch = true;
		else ch = false;
		day++; week++; 
		if (day > form[((ch)?1:0)][month]) {
			day = 1; month++;
		}
		if (month > 12) {
			month = 1; year++;
		}
		if (week > 7) week = 1;
		if (day == 13) weekday[week]++;
	}
	
	cout << weekday[6] << " " << weekday[7] << " " << weekday[1] << " " << weekday[2] << " " << weekday[3] << " " << weekday[4] << " " << weekday[5];
	
	return 0;
}
黑色星期五Friday the Thirteenth 黑色星期五Friday the Thirteenth 纯种模拟,分好润平年。 d是日,够就清零m++ m是月,够就清零y++ 是星期几,过来七天就请零(是为了统计十三号的) #include<bits/stdc++.h> using namespace std; bool runnian(int h){ if(h%100==0) if(h%400==0) ret... 阅读详情

相关推荐

洛谷-------P1202 [USACO1.1]黑色星期五Friday the Thirteenth

Problem Description 13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400. 这里有一些你要知道的: 1、1900年1月1日是星期一. 2、4,6,11和9月有30...

wcxyky的博客 624

黑色星期五

黑色星期五c++ 问题描述: 在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。已知1年1月1日是星期6,输入一个年份,输出本年所有的黑色星期5日期。 要求:输入年份,输出是:判断该年是否包含黑色星期五,如包含,给出具体日期 输入样例:2019 输出样例:2019 9 13 2019 12 13 方法一: 判断黑色星期五,需要判断 1.所输入的年份是闰年还是平年 2.判断对应年份的十三号是否是周五,根据已知条件得到19

Zxy20000808的博客 1747

黑色星期五 Friday The Thirteenth

黑色星期五 洛谷P1202 这是一道很奇怪的题 我做了一遍 不会 两天后 会了???? 好了 话不多说 讲思路 声明变量 判断是平年还是闰年 判断现在是几月 算13日是星期几 输出 完美结束 好啦 先不要向下看 自己试试???? #include <iostream> using namespace std; int m[2][12]={31,28,31,30,31,30,31,31,30...

ThisIsHelen的博客 489

洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth

P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题目描述 13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于40...

HJ921004的博客 262

题解:洛谷 P1202 [USACO1.1] 黑色星期五Friday the Thirteenth

题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。年),需要统计每个月 13 号落在周六、日、一、二、三、四、五的次数。年的一个周期,要求计算 1900 年 1 月 1 日至 1900+,而星期几由该月 13 号距离某个已知星期几的基准日的天数决定。依次输出周六、日、一、二、三、四、五在 13 日出现的次数。−1 年 12 月 31 日中十三号落在周一到周日的次数。

团爸讲算法 365

C++黑色星期五

这是C++一个经典的例子,求每年的黑色星期五(每月13号如果正好是星期五就是黑色星期五),这是运用万年历为基点做的,希望大家多多指点。谢谢

洛谷 P1202 [USACO1.1]黑色星期五 Friday the Thirteenth (模拟)

题目描述 13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400. 这里有一些你要知道的: 1、1900年1月1日是星期一. 2、4,6,11和9月有30天.其他月份除了2月都有31天....

邵光亮的博客 1015

c语言/黑色星期五

问题描述:在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天,所以不管哪个月的13日恰逢是星期五就叫“黑色星期五”,对于输入的年份,如果有黑色星期五,则输入黑色星期五具体日期;如过没有,则输出“无黑色星期五”。 实现方法:定义数组days[2][3],行标为0,1的分别存放非闰年和闰年各月13日是这一年的第几天,如果days[1][8]存放闰年的8月13日是这一年的第几天。

【模拟】洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth

题目描述13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.这里有一些你要知道的:1、1900年1月1日是星期一.2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,

。。。。 1020

昆仑通态,自由串口通讯

软件默认无该功能,需要问客服索要扩展包。

cfqq1989的博客 1542

ArcGIS学习记录—SHP文件转换为KML KMZ数据,并显示面要素相应的标注

使用相应软件操作获取KMZ数据得以下发到外业调查人员,使得矢量数据能够更显而易见,可视化,让外业人员的工作减轻许多。(过程步骤是借鉴于网络上的相关人士给的建议,根据这些建议自己做出来的步骤,可能有些粗略,有问题的话可以再进行探讨)...

qq_41046162的博客 5万+

洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题解

题目传送门 这道题暴力就能解决。 #include<bits/stdc++.h> using namespace std; int xi; int day=0,ans[8]; int main() { int n; cin>>n; for(int j=0;j<n;j++) { for(int ...

weixin_30633507的博客 183

Xcelium XRUN实用指南:从入门到高效仿真

本文是Xcelium XRUN仿真工具的实用指南,从基础入门到高效应用全面解析。XRUN作为Cadence Xcelium的统一命令行入口,能自动化编译、精细和仿真流程,大幅提升数字芯片与FPGA验证效率。文章详细介绍了最简命令、波形调试、增量编译、多核并行仿真等核心功能,并提供了管理复杂项目、性能调优与深度调试的进阶技巧,帮助工程师快速上手并精通这一高效仿真工具。

weixin_29238147的博客 742
上一篇: 洛谷P1904 天际线
下一篇: 洛谷 复习知识点
Runcode8
博客等级 码龄4年 180粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值