黑色星期五

来源:互联网 发布:海岛奇兵基地升级数据 编辑:程序博客网 时间: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;}


 

原创粉丝点击