200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 牛客网刷题—— 计算日期到天数转换

牛客网刷题—— 计算日期到天数转换

时间:2021-08-04 14:27:44

相关推荐

牛客网刷题—— 计算日期到天数转换

目录

一、描述

输入描述:

输出描述:

二、思路:

三、代码实现

点击下方链接开始做本题:

开始做题

一、描述

根据输入的日期,计算是这一年的第几天。

保证年份为4位数且日期合法。

进阶:时间复杂度:O(n)\O(n),空间复杂度:O(1)\O(1)

输入描述:

输入一行,每行空格分割,分别是年,月,日

输出描述:

输出是这一年的第几天

二、思路:

这道题简单解法其实将每个月的天数枚举出来,然后根据当前月份向前累加满月的天数,然后再加上当前月所在的天数。最终考虑平闰年的 2 月份区别是否增加一天。 其中需要注意的是平年和闰年的判断,而且是闰年的月份大于 2 的时候,也就是 2 月走完,总天数才能加 1 (比如 2000年2月18日 ,虽然是闰年,但是 2月 都没走完那是不能加上闰年多出的一天的)。

三、代码实现

执行代码如下:

#include <stdio.h>int main(){int year,month,day,sum,ret;int arr[12]={0,31,28,31,30,31,30,31,31,30,31,30,31};while((scanf("%d%d%d",&year,&month,&day))!=EOF){sum=day;//先将本月天数加上if (is_leap_year(year) && month > 2) { sum += 1;}for(int i=0;i<month;i++){sum+=arr[i];//将所有月份累加}printf("%d",sum);}}int is_leap_year(int y)//判断是否闰年{if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0){return 1;}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。