问题描述

有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
  说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
  输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
  输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
例子

样例输入
1998
样例输出
3
限制

时间限制:1.0s 内存限制:512.0MB

思路

看了很多关于这个题的解法,不难,各种思路呢也是各有千秋,这里呢给大家提供一种特别特别简单的思路。先根据题目中给出的日期求出来需要求的那一年的第一天是星期几,然后判断就ok了。需要记住的有,闰年全年366天,非闰年全年365天。
还有就是关于日期的细节不要处理错了。

代码呈上:

#include <stdio.h>
int getweekoffirstday(int y) //获取将要求得那一年的第一天是星期几
{int i=1998,week=3;int days=0;for(i=1998;i<y;i++){if(i%400==0||(i%4==0&&i%100!=0))days+=366;elsedays+=365;}return (days+week)%7;
}
void print(int y)
{int day[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};int week=getweekoffirstday(y);int flag=y%400==0||(y%4==0&&y%100!=0)?1:0;//如果y为闰年,flag=1; int times=0,i,days=0;for(i=0;i<12;i++){if((days+12+week)%7==4)times++;days+=day[flag][i];}printf("%d",times);} int main ()
{int y;scanf("%d",&y);print(y);return 0;
}

运行示例

算法训练 - 黑色星期五 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又相关推荐

  1. 编写一个程序,实现将c语言源程序中的注释全部删除

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 6.编写一个程序,实现将c语言源程序中的注释全部删除 #include<stdl ...

  2. Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列

    *8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.10(最大 ...

  3. 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算

    编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个主程序完成如下功能: (1)初始化顺序栈S; (2)判断顺序栈S是否为空: (3)依次进栈元素a,b,c,d,e ...

  4. 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

    1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...

  5. 41【C#】斐波那契(Fibonacci)数列的第一个和第二个数分别为1和1 从第三个数开始,每个数等于其前两个数之和(1,1,2,3...)编写一个程序输出斐波那契数列中的前20个数,

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 现在请你编写一个程序来帮助老王模拟苹果分级的操作吧

    [题目描述] 今年老王家的苹果丰收了,为了能卖个好价钱,老王把苹果按直径大小分等级出售.这么多苹果如何快速的分级,可愁坏了老王.现在请你编写一个程序来帮助老王模拟苹果分级的操作吧,要求一级果的直径大于 ...

  7. c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形

    常识: 1.3.5.7.8.10.12月份,每个月31天.2月闰年有29天,非闰年28天其他月份,每月30天 闰年:一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是 ...

  8. 蓝桥杯 Java算法训练 黑色星期五

    谢谢大家的支持,您的一键三连是 罡罡同学前进的最大动力! 一键三连 一键三连 一键三连 一键三连 一键三连 一键三连 Java算法训练 黑色星期五 有些西方人比较迷信,如果某个月的13号正好是星期五, ...

  9. 蓝桥杯 ALGO-105 算法训练 黑色星期五

    问题描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是"诸事不宜".请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13 ...

  10. 试题 算法训练 黑色星期五

    试题 算法训练 黑色星期五 题目描述: 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是& ...

最新文章

  1. Codeforces Round #665 (Div. 2) 题解( 小学奥数专场 )
  2. C#中方法的参数的四种类型(转)
  3. 【Linux】一步一步学Linux——dpkg-deb命令(270)
  4. 给未来的自己一封信计算机,给未来的自己的一封信范文(精选5篇)
  5. raspberry pi_前5名:替代密码,Raspberry Pi进入太空等等
  6. js 单精度浮点数转10进制_确保前端 JavaScript 浮点数精度的四则运算方法
  7. 网络通信 public ip 和 private ip
  8. 【翻译】在backtrack5上用Evilgrade工具15步**windows
  9. 华为机试HJ103:Redraiment的走法
  10. 【CNMP系列】CentOS7.0下安装Nginx服务
  11. 数据分析在内容运营中的作用
  12. android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
  13. QTP是什么、QTP录制回放的原理、loadrunner、Selenium、QTP三者区别?QTP下载地址
  14. 360服务器安全加固系统,360政企安全
  15. 第一章 语料库语言学基本知识
  16. 在计算机图形学中多边形的表示方法通常有,计算机图形学复习大纲
  17. iOS微信实现第三方登录的方法
  18. 关于部分手机默认获取权限问题
  19. 机器学习系列-- 异常检测(Anomaly Detection)
  20. 一键接入 ChatGPT,让你的QQ群变得热闹起来

热门文章

  1. windows server 2012 AD 活动目录部署系列(三)加入域并创建域用户
  2. 计算机公式算乘法,excel表格乘法计算公式的用法
  3. SharePoint使用CamlQuery查询人员和组
  4. 服务器搭建centos7系统操作过程(使用系统盘搭建centos7系统)
  5. excel锁定单元格不能修改_3步让表格只能输入不能修改,保护表格格式,快速搞定数据汇总...
  6. Hexo next主题修改背景报 failed to locate @import file F:\blog\source\_data\styles.styl
  7. nfc卡模式与标准模式_NFC是什么?有什么优势和劣势?
  8. Win11删除磁盘分区的方法
  9. 阿里云个人网站免费绑定SSL证书(超详细图文教程)
  10. 【机器学习理论】换底公式--以e,2,10为底的对数关系转化