zoukankan      html  css  js  c++  java
  • HDOJ2005第几天

    第几天?

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 68932    Accepted Submission(s): 26152


    Problem Description
    给定一个日期,输出这个日期是该年的第几天。
     
    Input
    输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
     
    Output
    对于每组输入数据,输出一行,表示该日期是该年的第几天。
     
    Sample Input
    1985/1/20 2006/3/12
     
    Sample Output
    20 71
     
    Author
    lcy
     
     
    解题思路:
    1.将月份里包含的天数累加,每个月包含的天数用数组常量去表示。
    2.如果所判断的月份超过2月,需要判断一下是该年是不是闰年。润年的判断标准是:能被400整除或者能被4整除且不能被100整除。
    3.注意常量数组和实际月份的对应关系,例如1月份对应于month[0]。
     1 #include<stdio.h>
     2 
     3 int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
     4 int is_leap(int m)
     5 {
     6     return (m%400==0 || (m%4==0&&m%100!=0));
     7 }
     8 int count(int y, int m)
     9 {
    10     int i, day = 0;
    11     for(i = 0; i < m; i++)
    12         day +=month[i];
    13     if(m > 1)
    14         day += is_leap(y);
    15     return day;
    16 }
    17 int main()
    18 {
    19    int y, m, d, day;
    20    while(scanf("%d/%d/%d", &y, &m, &d)== 3)
    21    {
    22        day = d+count(y,m-1);
    23        printf("%d
    ", day);
    24    }
    25     return 0;
    26 }
  • 相关阅读:
    P1012拼数
    P1622释放囚犯
    P1064 金明的预算方案
    P1754球迷购票问题
    卡塔兰数
    P1474货币系统
    P2562kitty猫基因
    P3984高兴的津津
    5-servlet简介
    java通过百度AI开发平台提取身份证图片中的文字信息
  • 原文地址:https://www.cnblogs.com/la0bei/p/3649443.html
Copyright © 2011-2022 走看看