【每日一题】国庆节是星期几

题目详情 - [模拟题] 国庆节是星期几 - 核OJ (hetao101.com)

题目大意:1949年的国庆节是星期六,输入大于1949年的年份n,求第n年的国庆节是星期几

思路分析:

题目已经给了我们一些提示,求国庆节是星期几,可以计算 1949 年以后每年的天数,把天数求和然后加上 6,用这个数字对 7 求余数,就是结果。整个编写过程需要解决下面几个问题:

1.如何判断平年和闰年

用闰年判断方法,可以写出if语句,进行判断。

具体判断方法:

四年一闰,百年不闰,四百年又闰。翻译:可以整除4并且不能整除一百的年份是闰年,可以整除400的年份也是闰年。

依据上面方法,就能写出平年、闰年的判断函数。

2.如何计算总天数

使用一个for循环,遍历1950(1949年的下一年)到年份n之间的所有年份,在循环中使用判断函数判断是平年还是闰年,再相应地给计数变量加上365或366,就可以了。

功能实现:

1.定义需要用到的变量,输入年份n

我们需要计算总天数,所以,需要两个int类型的变量n和day,n保存输入的年份,day用于计算总天数。变量定义:

int y,day;

输入年份n:

cin >> y;

2.平年、闰年的判断函数

在函数中使用参数year,表示年份,写一个if语句即可。函数要用bool类型的函数,才能返回判断结果,闰年返回true,平年返回false,代码如下:

bool pr(int year)
{
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
	{
		return true;
	}
	return false;
}

3.计算总天数

按前面思路遍历1950到n的每一年,再相应地加上天数,就可以计算出总天数。主要代码如下:

for (int i = 1950;i <= y;i++)
{
	if (pr(i))
	{
		day += 366;
	}
	else
	{
		day += 365;
	}
}

4.总天数加6对7取余再输出

直接在输出内容上写(day+6)%7就可以:

cout << (day + 6) % 7;

最后的测试:

运行程序,输入样例中的2019,可以发现,程序输出了一个2,与样例一致。

可以再使用自己的样例,输入2024,输出2,而今年国庆节就是星期二,程序没有问题了

提交,AC!

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值