蓝桥杯-黑色星期五(算法训练)

简介: 蓝桥杯-黑色星期五(算法训练)

题目描述:


有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。

说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。  


输入:


输入只有一行,即某个特定的年份(大于或等于1998年)。  


输出:


输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。  


样例输入:


1998


样例输出:


3


解题思路:


根据题目,我们已知天数是13号,所以只需要确定年份和月份即可,运用基姆拉尔森公式(不需要判断是否为闰年)


x=(13+2*m+3*(m+1)/5+year+year/4-year/100+year/400)%7;

如果月份是1或者2,此时月份m需要加上12,按照上一年的13月和14月来算,同时年份-1,最后对7求余,题目说的是星期五,所以只需要让余数等于4就可以了,具体的来看代码吧!!!


程序代码:


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
/*int LeapYear(int year)
{
  if((year%4==0&&year%100!=0)||year%400==0)
    return 1;
  return 0;
}*/
int main()
{
  int n,sum=0,m,year,x;
  cin>>n;
  year=n;
  for(int i=1;i<=12;i++)
  {
    m=i;
    if(m==1||m==2)
    {
      m+=12;
      year--;
      x=(13+2*m+3*(m+1)/5+year+year/4-year/100+year/400)%7;
      if(x==4)
        sum++;
    }
    else
    {
      x=(13+2*m+3*(m+1)/5+year+year/4-year/100+year/400)%7;
      if(x==4)
        sum++;
    }
    year=n;
  }
  cout<<sum<<endl;
  return 0;
}
相关文章
|
4月前
|
算法 Java Serverless
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
48 1
|
25天前
|
存储 算法
【C算法】编程初学者入门训练140道(1~20)
【C算法】编程初学者入门训练140道(1~20)
|
3月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
31 3
|
2月前
knn增强数据训练
【7月更文挑战第27天】
25 10
|
2月前
knn增强数据训练
【7月更文挑战第28天】
18 2
|
2月前
|
数据采集 编解码 人工智能
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第19天】DeepMind的JEST算法革新AI训练,提升效率13倍,节能10倍。通过联合数据批次选择,预训练指导及多分辨率训练,优化资源利用,降低能耗。实验显示性能提升,达到SOTA水平,但实施需大量资源,依赖优质参考模型。[论文链接](https://arxiv.org/pdf/2406.17711)
52 10
|
20天前
|
算法 搜索推荐
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
|
2月前
|
人工智能 边缘计算 算法
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第20天】DeepMind unveils Switch Transformer, revolutionizing AI energy consumption. This novel algorithm boosts training efficiency by 13x and slashes energy use by 10x compared to ChatGPT, marking a significant leap towards eco-friendly AI.
33 2
|
3月前
|
机器学习/深度学习 算法
**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。
【6月更文挑战第28天】**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。数据从输入层流经隐藏层到输出层,计算预测值。接着,比较预测与真实值计算损失。然后,从输出层开始,利用链式法则反向计算误差和梯度,更新权重以减小损失。此过程迭代进行,直到损失收敛或达到训练次数,优化模型性能。反向传播实现了自动微分,使模型能适应训练数据并泛化到新数据。
50 2
|
3月前
|
分布式计算 算法 Java
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理
下一篇
DDNS