首页 > 试题广场 >

编写程序:从键盘输入年份year(≥1900),计算该年中有

[问答题]

编写程序:从键盘输入年份year(≥1900),计算该年中有几个“黑色星期五”(既是13日又是星期五的日期)。(提示:1900年1月1日星期一)

#include <iostream>
using namespace std;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
 int year;
 cin>>year;
 if((year%100!=0&&year%4==0)||(year%400==0))//其实能被400整除必然能被100整除
 month[2]=29;//如果年份是闰年则二月份加一天
 int cnt=0;//统计闰年个数
      int days,w;
      int tmp=year;
      tmp--;
   while(tmp>=1900){//计算year-1年至1900年之间有多少个闰年
    if((tmp%100!=0&&tmp%4==0)||(tmp%400==0))
       cnt++;
       tmp--;
   }
   days=365*(year-1900)+cnt+12;//计算year年1月13号与1900年1月1日相差的天数
   for(int i=0;i<12;i++){
    days+=month[i];
    w=(days%7)+1;
    if(w==5){
     cout<<year<<"/"<<i+1<<"/"<<13<<endl;
    }
   }
 return 0;
}
发表于 2018-05-20 17:15:00 回复(0)

发表于 2016-11-22 18:38:08 回复(0)