首页 > ACM题库 > HDU-杭电 > HDU 1491 Octorber 21st[解题报告] C++
2013
12-11

HDU 1491 Octorber 21st[解题报告] C++

Octorber 21st

问题描述 :

HDU’s 50th birthday, on Octorber 21st, is coming. What an exciting day!! As a student of HDU, I always want to know how many days are there between today and Octorber 21st.So, write a problem and tell me the answer.Of course, the date I give you is always in 2006.

输入:

The input consists of T test cases. The number of T is given on the first line of the input file.Following T lines, which represent dates, one date per line. The format for a date is "month day" where month is a number between 1 (which indicates January) and 12 (which indicates December), day is a number between 1 and 31.All the date in the input are in 2006, you can assume that all the dates in the input are legal(合法).

输出:

For each case, if the date is before Octorber 21st, you should print a number that between the date and Octorber 21st.If the day is beyond Octorber 21st, just print "What a pity, it has passed!".If the date is just Octorber 21st, print"It’s today!!".

样例输入:

7
10 20
10 19
10  1
10 21
9   1
11 11
12 12

样例输出:

1
2
20
It's today!!
50
What a pity, it has passed!
What a pity, it has passed!

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1491

题意:给一个2006年的日期,问和2006年10月21日还差几天。

mark:getdays是用于获得m月d日是当年的第几天。最后和10月21日做比较。

代码:

# include <stdio.h>


int getdays (int m, int d)
{
    int i, rtn = 0, month [12] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30} ;
    for (i = 0 ; i < m ; i++)
        rtn += month[i] ;
    return rtn + d ;
}


int main ()
{
    int T ;
    int days, target, m, d ;
    scanf ("%d", &T) ;
    target = getdays (10, 21) ;
    while (T--)
    {
        scanf ("%d %d", &m, &d) ;
        days = getdays (m, d) ;
        if (days > target) puts ("What a pity, it has passed!") ;
        else if (days == target) puts ("It's today!!") ;
        else printf ("%d\n", target - days) ;
    }
    return 0 ;
}

解题报告转自:http://www.cnblogs.com/lzsz1212/archive/2012/01/08/2316261.html


  1. 第2题,TCP不支持多播,多播和广播仅应用于UDP。所以B选项是不对的。第2题,TCP不支持多播,多播和广播仅应用于UDP。所以B选项是不对的。