原题链接:数日子
解题思路:
首先判断2018年是否为闰年,“能被4整除并且不能被100整除”或者“能被400整除”的年份为闰年,由于2018不能被4整除、也不能被400整除,所以2018年不是闰年,那么2018年的2月只有28天,判断是否为闰年的函数如下所示:
int is_leap_year(int year){ return (year%4==0&&year%100!=0||year%400==0)?1:0; }
然后,为了计算2018年的7月19日是这一年的第几天,需要加上从1月到6月每月的天数以及7月的19天,1月、3月、5月各有31天,2月有28天,4月、6月各有30天,判断每月有多少天的函数如下所示:
int month_days(int year,int month){ int days; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) days=31; else if(month==2){ if(is_leap_year(year)) days=29; else days=28; }else days=30; return days; }
于是我们可以在循环中让year被设定为2018、让month取1到6,计算31+28+31+30+31+30=181,再加上7月的19天就等于200,即2018年的7月19日是这一年的第200天。
注意事项:
根据题目描述,需要提交的是一个整数,不要填写任何多余内容;所以只需直接提交计算结果,不需要展示任何计算过程。
参考代码:
#include<stdio.h> int main(){ printf("200"); return 0; }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复