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 }

    //考前来一发:

  • 相关阅读:
    geth搭建以太坊私链及常用操作
    什么是区块链?
    linux的命令
    MySQL的sql优化
    如何防止秒杀抢购超卖?
    try catch影响Spring事务吗?
    mysql中InnoDB与MyISAM的区别
    进程和线程的区别
    Nginx采用yum安装方式及安装后的目录
    Springboot2.0中jpa默认创建的mysql表为myisam引擎问题
  • 原文地址:https://www.cnblogs.com/soTired/p/4626641.html
Copyright © 2011-2022 走看看