华为机试HJ73:计算日期到天数转换

简介: 华为机试HJ73:计算日期到天数转换

题目描述:

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

输入描述:

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

输出描述:

输出是这一年的第几天

示例:

输入:

2012 12 31

输出:

366

解题思路:

本题是个数学问题,也是生活题。闰年要满足两个条件,年份可以被4整除,且不被100整除。首先用year判断是否为闰年;其次,建立闰年的月份天数表和非闰年的月份天数表;根据当前月份,累加其前n-1个月的完整天数,再加上当月的天数,完毕。

测试代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
    int year,month,day;
    while(cin>>year>>month>>day)
    {
        bool flag=(year%4==0&&year%100!=0)?true:false;
        vector<int> months1={31,28,31,30,31,30,31,31,30,31,30,31};     // 非闰年
        vector<int> months2={31,29,31,30,31,30,31,31,30,31,30,31};     // 闰年
        int sum=0;
        for(int i=0;i<(month-1);++i)
        {
            if(flag)
            {
                sum+=months2[i];
            }
            else{
                sum+=months1[i];
            }
        }
        sum+=day;
        cout<<sum<<endl;
    }
    return 0;
}


相关文章
|
6月前
|
存储 C语言
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
|
7月前
题目----计算某年某月的天数
题目----计算某年某月的天数
50 0
|
7月前
题目----获得月份天数
题目----获得月份天数
31 0
|
7月前
31.假定2007年的一月一日是星期一,输入一个时间(包含年、月、日),求出它是星期几。
31.假定2007年的一月一日是星期一,输入一个时间(包含年、月、日),求出它是星期几。
52 0
|
7月前
|
索引
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
每日一题吼吼吼(打印从1到最大n位数,计算是第几天)
46 0
|
7月前
|
Linux C++ iOS开发
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
102 0
|
7月前
|
C++
[C++/PTA] 时间相加
[C++/PTA] 时间相加
95 0
|
7月前
|
测试技术 C++
[C++/PTA] 计算时间相减
[C++/PTA] 计算时间相减
53 0
|
C语言
C语言每日一题 ----计算日期到天数转换(Day 2)
C语言每日一题 ----计算日期到天数转换(Day 2)
148 0
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
63 0