黑色星期五
来源:互联网 发布:海岛奇兵基地升级数据 编辑:程序博客网 时间:2024/04/26 11:33
题目:黑色星期五
已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个"黑色星期五"。
"黑色星期五"指既是13日又是星期五的日期。
程序中函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为true(或false)分别表示year是(或不是)闰年。
分析思路
根据1900年1月1号是星期1,推算出year年1月13号是星期几,如果是星期五,则是一个黑色星期五,
然后推算year年每月的13号(2月到12月)是否是星期五,如果是则是黑色星期五。
/*题目:黑色星期五已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个"黑色星期五"。"黑色星期五"指既是13日又是星期五的日期。程序中函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为true(或false)分别表示year是(或不是)闰年。分析思路根据1900年1月1号是星期1,推算出year年1月13号是星期几,如果是星期五,则是一个黑色星期五,然后推算year年每月的13号(2月到12月)是否是星期五,如果是则是黑色星期五。*/#include <iostream>using namespace std;int count_5_13(int year) ; //获取year这一年中有几个黑色星期五bool isLeapYear(int year); //判断闰年的函数,是闰年返回真,非闰年返回假int main(){ int year; cout<<"请输入您要判断的年(1900以后的年,包括1900年)"; cin>>year; cout<<"黑色星期五的个数:"<<count_5_13(year)<<endl; //输出year这一年中有几个黑色星期五 return 0;}int count_5_13(int year) //函数定义{ int date; // date为0表示星期日,为1~6分别表示星期一至星期六 long days = 0; // days记录天数 int m, y, c = 0; // c用于表示黑色星期五的个数 if (year < 1900) return -1; //计算从1900年1月1日起,至给定年份year的1月13日间隔的天数 days = 12; for (y = 1900; y < year; y++) { days += 365; if (isLeapYear(y)) days++ ; } //此时的days是year这一年中1月13号到1900年1月1日之间的天数 date = ((days % 7) + 1) % 7; // 算出给定年份year的1月13日是星期几 c = (date==5) ? 1 : 0; //如果此year的1月13号正好是星期5,则是一个黑色星期五 if(date==5) { c=1; cout<<year<<"-"<<1<<"-"<<13<<" 是星期五"<<endl; } else c=0; for(m = 2; m<=12; m++) //再从2月到12月依次判断每月的13号是否是星期五 { switch (m-1) {case 1:case 3:case 5:case 7:case 8:case 10:case 12: days = 31; break;case 4: case 6:case 9:case 11: days = 30; break;case 2: days = 28;if (isLeapYear(y)) days = 29; break;} date =((days % 7) + date) % 7; if (date==5) { c++; cout<<year<<"-"<<m<<"-"<<13<<" 是星期五"<<endl;} } return c; }bool isLeapYear(int year) //判断闰年的函数定义{ if((year%4==0&&year%100!=0)||year%400==0) return true; else return false;}
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- USACO 黑色星期五
- 【USACO】黑色星期五
- 读取Java文件到byte数组的三种方式
- BFS小结
- 我的老东家联发科与高通的假话题与真危机
- 手机中的javascript事件
- c++ builder 子窗口长期前置
- 黑色星期五
- 毛爷爷
- C# ListView的用法
- platform_driver_register( )过程追踪
- 我爱天文 - 太阳在哪里?
- .net jMail收邮件(含写入数据库及收取附件)
- 从浏览器启动客户端程序的方法
- 三星苹果还能笑多久?联想挑战智能手机全球霸主
- mysql和sqlserver存储斜杆