zoukankan      html  css  js  c++  java
  • BOJ 87 日期

    时间限制 1000 ms 内存限制 65536 KB

    题目描述

    请你计算出第XYZ日是第X年的第几天。其中,1月1日是第一天,1月2日是第二天,以此类推。

    计算时请注意闰年的影响。对于非整百年,年数能整除4是闰年,否则不是闰年;对于整百年,年数能整除400是闰年,否则不是闰年。如1900年和1901年不是闰年,而2000年和2004年是闰年。

    输入格式

    第一行有一个整数T (T100),表示一共有T组数据需要你处理。
    接下来一共有T行,每行是一个如下格式的字符串:X:Y:Z,表示你需要计算第XYZ日是第X年的第几天。其中X是一个大于0,小于2100的整数。保证字符串的格式都是合法的,字符串所表示的日期也都是存在的。

    输出格式

    对于每组数据,你需要输出一个整数,表示所求得的结果。

    输入样例

    2
    2013:4:12
    112:4:12

    输出样例

    102
    103


    #include<iostream>
    
    using namespace std;
    
    //#define DEBUG_IN  
    
    
    int main()
    {
        int n, i, j, flag,k = 1;
        int X,Y,Z;//year,month,date
        char m1,m2;
        int date[13][32];
        int month[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
        
        for(i = 1; i <= 12; i++ ){
            for(j = 1; j <= month[i]; j++)
                date[i][j] = k++;
        }
    #ifdef DEBUG_IN
        if(freopen("87.txt","r",stdin) == NULL)
            printf("error
    ");
    #endif
        cin>>n;
        while(n--){
            cin>>X>>m1>>Y>>m2>>Z;
            flag = (Y > 2)&&!(X%4 == 0 && X%100 || X%400 == 0);
            cout<<date[Y][Z] - flag<<endl;
        }
    #ifdef DEBUG_IN
        fclose(stdin);
        freopen("CON","r",stdin);
    #endif 
        return 0;
    }

    注意点:

      从0开始和从1开始的统一,还是逻辑要清楚。

      闰年的判断条件及其表达。

      调试手段的应用,#define DEBUG_IN

    ________你所记的,都是假的。
  • 相关阅读:
    文件打开的几种访问模式
    数据分析师简介
    python数据处理----常用数据文件的处理
    markdown使用方法介绍
    gdb调试常用方法介绍
    [OPEN CV] 常用视频操作方法
    [转载]C++中四种强制类型转换方式
    python 定时服务模块
    pymysql安装和使用
    VS2019开发Qt程序中文乱码
  • 原文地址:https://www.cnblogs.com/pudding-ai/p/3676714.html
Copyright © 2011-2022 走看看