熊仔们好,代码来袭
题目描述
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入
输入只有一行,即某个特定的年份(大于或等于1998年)。
输出
输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
样例输入复制
1998
样例输出复制
3
#include <iostream>
using namespace std;
bool isLeap(int y) {
if(y%4==0 && y%100!=0 || y%400==0)
return true;
return false;
}
int main(int argc, char** argv){
int month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int year;
cin>>year;
int y=1998,m=1,n=1,d=12,w=4;
while(y!=year) {
if(isLeap(y))
d+=366;
else
d+=365;
y++;
}
int sum=0;
while(m<=12) {
if((d%7+w)%7==5 )
sum++;
if(m==2 && isLeap(y))
d+=29;
else
d+=month[m];
m++;
}
cout<<sum<<endl;
return 0;
}
这是一个编程问题,要求统计给定年份中13号且为星期五的日子出现的次数。已知1998年1月1日是星期四,并规定闰年的判断条件。例如,在1998年中,这种情况出现了3次。
1887

被折叠的 条评论
为什么被折叠?



