题解 | 华为HJ73#计算日期到天数转换#

计算日期到天数转换

https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded

描述

根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
进阶:时间复杂度:O(n) ,空间复杂度:O(1)

输入描述:

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

输出描述:

输出是这一年的第几天

示例1

输入:
2012 12 31
输出:
366

示例2

输入:
1982 3 4
输出:
63
代码部分:
#include <stdio.h>
//以下是Senky的代码
int main() {
    int year = 0;
    int month = 0;
    int day = 0;
    int i = 0;
    int sum = 0; //记录天数
//每个数组下标为月份,数组元素为平年的天数
    int date[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    while (~scanf("%d %d %d", &year, &month, &day)) {
        //默认不是闰年,则将month前面的月份天数加起来再加month的天数
        for (i = 1; i < month; i++) {
            sum += date[i];
        }
        sum += day;
    }

    //判断闰年进入
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        if (3 <= month)//超过3月份才加闰年的那一天
            sum += 1; //闰年,month大于三月份,加一天
    }
    printf("%d", sum);
    return 0;//编辑于2022/10/08
}
总结
①数学问题没什么难点;
②当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;
#华为笔试#
华为-HJ 文章被收录于专栏

机试的题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务