zoukankan      html  css  js  c++  java
  • 杭电2133--What day is it

    What day is it

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 4261    Accepted Submission(s): 1252


    Problem Description
    Today is Saturday, 17th Nov,2007. Now, if i tell you a date, can you tell me what day it is ?
     
    Input
    There are multiply cases.
    One line is one case.
    There are three integers, year(0<year<10000), month(0<=month<13), day(0<=day<32).
     
    Output
    Output one line.
    if the date is illegal, you should output "illegal". Or, you should output what day it is.
     
    Sample Input
    2007 11 17
     
    Sample Output
    Saturday
     
    Author
    LGX
     
    Source
     
    //蔡勒公式坑 ! 
     1 #include <stdio.h>
     2 char str[20][20]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"} ;
     3 int num[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} ;     //这边坑! 
     4 int shu[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} ;
     5 
     6 int judge(int year)
     7 {
     8     if(year%4 == 0 && year%100!=0 || year%400 == 0)
     9     return 1 ;
    10     else
    11     return 0;
    12 }
    13 
    14 int main()
    15 {
    16     int year, month, day, p ;
    17     while(~scanf("%d %d %d",&year, &month, &day))
    18     {
    19         int t = judge(year) ;                                          
    20         if(t == 0)                                                  //这边坑! 
    21         {
    22         
    23             if(day > num[month] || month == 0 || day == 0)
    24             {
    25                 printf("illegal
    ") ;
    26                 continue ;
    27             }
    28         }
    29         else                                                       //这边坑; 
    30         {
    31             //num[2] += 1 ;
    32             if(day > shu[month] || month == 0 || day == 0)
    33             {
    34                 printf("illegal
    ") ;
    35                 continue ;
    36             }
    37         }                                                            
    38 
    39         int i, sum=0 ;
    40          for(i=1; i<year; i++)
    41         {
    42             if(judge(i) == 1)
    43             sum += 366 ;
    44             else
    45             sum += 365 ;
    46             sum=sum%7 ;
    47         }
    48         
    49         sum += day ;
    50         for(i=1; i<month; i++)
    51         {
    52             if(t == 1)
    53             sum+= shu[i] ;
    54             else
    55             sum+=num[i] ;
    56             sum = sum % 7 ;
    57         }
    58         sum = sum%7 ;
    59         printf("%s
    " ,str[sum]) ;
    60     }
    61     return 0 ;
    62 }

    //考前来一发:

  • 相关阅读:
    K
    A
    2017 Multi-University Training Contest
    第一章 概述
    校赛F 比比谁更快(线段树)
    POJ 3683 Priest John's Busiest Day
    POJ 2186 Popular Cows
    第十五周讨论
    线段树模板(单点更新,区间更新,RMQ)
    2-SAT问题(白书)
  • 原文地址:https://www.cnblogs.com/soTired/p/4626641.html
Copyright © 2011-2022 走看看