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

本文介绍了一道通过模拟计算从1900年到指定年份间每月13号落在一周中哪一天的问题。使用C++实现了一个判断闰年的函数,并通过循环迭代实现了日期推进和统计每周五的13号出现次数的功能。

题目传送门

解题思路:

纯模拟,水题凑题数.

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 bool rn(int);//声明判断是否是闰年的函数
 4 int main(){
 5     int n1;
 6     cin>>n1;//同题目的n
 7     int n=1900,y=1,r=1,xq=1;//初始化并声明年月日
 8     int yue[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}};//记录每个月有几天
 9     int njs;//记录是否是闰年
10     int wew[8]={0,0,0,0,0,0,0,0};//初始化周一到周天有多少个在13号
11     while(1){//非0为true
12         if(n==1900+n1&&y==1&&r==1){//如果到了指定日期就推出循环
13             break;
14         }
15         if(rn(n)){//判断是否为闰年
16             njs=1;
17         }
18         else{
19             njs=0;
20         }
21         r+=1;//日加一
22         xq+=1;//星期加一
23         if(r>yue[njs][y]){//如果日大于这个月的天数,月加一,日归一
24             r=1;
25             y+=1;
26         }
27         if(y>12){//如果月大于12,年加一,月归一
28             n+=1;
29             y=1;
30         }
31         if(xq>7){//如果星期大于7,星期归一
32             xq=1;
33         }
34         if(r==13){//如果日等于13,这个星期在13号的次数加一
35             wew[xq]+=1;
36         }
37     }
38     cout<<wew[6]<<" "<<wew[7]<<" "<<wew[1]<<" "<<wew[2]<<" "<<wew[3]<<" "<<wew[4]<<" "<<wew[5];//输出
39     return 0;//完美无瑕疵结束
40 }
41 bool rn(int h){
42     if(h%100==0){//判断是否是世纪年
43         if(h%400==0){//如能被400整除,就是闰年
44             return true;
45         }
46         else{//否则不是
47             return false;
48         }
49     }
50     else{
51         if(h%4==0){//能被四整除,就是闰年
52             return true;
53         }
54         else{//否则不是
55             return false;
56         }
57     }
58 }

 

转载于:https://www.cnblogs.com/lipeiyi520/p/11290194.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值