Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:90744

签 名:

2023终究会过去,期待2024!

等  级
排  名 8
经  验 26241
参赛次数 58
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:

    1.先求出输入年与1998年1月1日相差多少的天数sum;

    2.然后求输入年的每一个月的13号与1998年1月1日相差的天数sum;注意执行的是:sum=sum+12,因为sum保存的是每一个月1日与1998年1月1日相差的天数;

    3.比较该天数sum%7==1是否成立,如果成立,则这个月的13号就是星期五。(1998年1月1日是星期四,所以模7等于1就是星期五了)。


参考代码:

#include<iostream> 
using namespace std; 
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool leap(int year)
{
	if(year%4==0 && year%100!=0 || year%400==0)
		return true;
	else
		return false;
}
int main() 
{ 
	int yy;
	while(cin>>yy)
	{	
		int sum=0,cnt=0;
		for(int y=1998;y<yy;y++)
		{
			if(leap(y)) sum=sum+366;
			else sum=sum+365;
		}
		if(leap(yy)) month[2]=29;
		else month[2]=28;		
		for(int i=1;i<=12;i++)
		{ 
			sum=sum+12;				 
			if(sum%7==1) cnt++; 
			sum=sum-12+month[i];
			 
		}	 
		cout<<cnt<<endl;
	} 
	return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区