算法训练 黑色星期五
来源:互联网 发布:手机日历天气软件 编辑:程序博客网 时间:2024/04/30 09:55
问题描述
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
输入输出样例
样例输入
1998
样例输出
3
由题,推知1998年1月13日为星期二,由公式(day+2)%7可求出第n年1月13号为星期几,在此基础上每次加一个月,判断该月13号是否为星期五
#include <iostream>using namespace std;int main(){ int date[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//储存平年每个月的天数 int n,i,count=0;//记录黑色星期五的个数 int day=0; int m=2;//以1998年1月13号为起点,即星期二 cin>>n; for(i=1998;i<n;i++) { if((i%4==0&&i%100!=0)||(i%400==0&&i%100==0)) { day+=366; } else day+=365; } m=(day+m)%7;//得出第n年1月13号为星期几 if(m==5) count++; if(m==0) m=7; for(i=1;i<12;i++)//一月13号已经判断过,i<12 { day=0; if(i==2) { if((n%4==0&&n%100!=0)||(n%400==0&&n%100==0)) day+=date[i]+1; else day+=date[i]; } else day+=date[i]; m=(m+day)%7; if(m==5) count++; if(m==7) m=7; } cout<<count<<endl; return 0;}
阅读全文
0 0
- 算法训练 黑色星期五
- 算法训练 黑色星期五
- 算法训练 黑色星期五
- 算法训练 黑色星期五
- 蓝桥杯 算法训练 黑色星期五
- 蓝桥杯 算法训练 黑色星期五
- 蓝桥杯 算法训练 黑色星期五
- 算法练习-黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- webpack构建vue-cli环境
- mysql绿色版安装过程
- C++实现大数运算 加法部分。
- 【codevs 2370】小机房的树
- 数组初始化:指定初始化项目
- 算法训练 黑色星期五
- 01背包问题
- VasSonic轻量级的高性能的Hybrid框架正式开源
- Js_Dom(4)__Dom基础<回流与重绘>
- DAY57 JavaScript基础2
- netty的简单介绍
- 2017.6.4测试 题三 字符串
- 草地排水 (码一下自己的网络流板子)
- 练习9