c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形
生活随笔
收集整理的這篇文章主要介紹了
c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
常識(shí):
1、3、5、7、8、10、12月份,每個(gè)月31天。2月閏年有29天,非閏年28天其他月份,每月30天
閏年:一年有365天,閏年有366天,所謂閏年,即能被4整除且不能被100整除的年份,或是能被400整除的年份;
這兩次比賽都考了這,我每月有多少天都分不清啊啊啊,怎么做!!!所以今天我特意整理整理
題目描述
有些西方人比較迷信,如果某個(gè)月的13號(hào)正好是星期五,他們就會(huì)覺(jué)得不太吉利,用古人的說(shuō)法,就是“諸事不宜”。請(qǐng)你編寫一個(gè)程序,統(tǒng)計(jì)出在某個(gè)特定的年份中,出現(xiàn)了多少次既是13號(hào)又是星期五的情形,以幫助你的迷信朋友解決難題。
說(shuō)明:(1)一年有365天,閏年有366天,所謂閏年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用戶輸入的年份肯定大于或等于1998年。
輸入
輸入只有一行,即某個(gè)特定的年份(大于或等于1998年)。
輸出
輸出只有一行,即在這一年中,出現(xiàn)了多少次既是13號(hào)又是星期五的情形。
樣例輸入
1998
樣例輸出
3
/* 因?yàn)?998年1月2日為星期五,然后計(jì)算給定年份每個(gè)月的13號(hào)與1998年1月2日 相差的天數(shù),如果天數(shù)取模7為0那么即為星期五 */#include <bits/stdc++.h>using namespace std;int year[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};int judge(int y)//判斷閏年 {if(y % 400 == 0 || y % 100 != 0 && y % 4 == 0)return 1;return 0; }int calcul(int y, int m, int d)//計(jì)算天數(shù) {int sum = (y-1)*365 + (y-1)/4 - (y-1)/100 + (y-1)/400;int k = judge(y);for(int i = 1; i < m; i++)sum += year[k][i];sum += d;return sum; }int main () {int y;scanf("%d", &y);int ans = 0;int index = calcul(1998, 1, 2);for(int i = 1; i <= 12; i++){int k = calcul(y, i, 13) - index;if(k % 7 == 0) ans++;}printf("%d\n", ans);return 0; }總結(jié)
以上是生活随笔為你收集整理的c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (矩阵快速幂)解所有类似Fibonacc
- 下一篇: mysql数据异常增长_mysql表到一