zoukankan      html  css  js  c++  java
  • poj 3393 Lucky and Good Months by Gregorian Calendar(模拟)

    题目:http://poj.org/problem?id=3393
    一道题目挺长的模拟题,参考了网上大神的题解。

      1 #include <iostream>
      2 #include <cstdio>
      3 #include <cstdlib>
      4 #include <cstring>
      5 using namespace std;
      6 
      7 int Month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
      8 int Lmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
      9 
     10 int check(int year)
     11 {
     12     if(year<1582)
     13     {
     14         if(year%4==0)
     15         return 1;
     16         else
     17         return 0;
     18     }
     19     else
     20     {
     21         if(year%400==0||(year%4==0&&year%100!=0)||year==1700)
     22         return 1;
     23         else
     24         return 0;
     25     }
     26 }
     27 
     28 int computeday(int year,int month)
     29 {
     30     int day=1,i,j;
     31     for(i=1; i<year; i++)
     32     if(check(i))
     33     day+=366;
     34     else
     35     day+=365;
     36 
     37     for(j=1; j<month; j++)
     38     if(check(i))
     39     day+=Lmonth[j];
     40     else
     41     day+=Month[j];
     42 
     43     if(year>1752||(year==1752&&month>9))
     44     day-=11;
     45     return day;
     46 }
     47 
     48 int main()
     49 {
     50     int luck,good,t,*x;
     51     int ys,ms,ye,me;
     52     int day,i,j;
     53     cin>>t;
     54     while(t--)
     55     {
     56         luck=0; good=0;
     57         cin>>ys>>ms>>ye>>me;
     58         day=computeday(ys,ms);
     59         if((day+5)%7<=1||(day+5)%7==6)
     60         good++;
     61 
     62         for(i=ys; i<ye; i++)
     63         {
     64             if(check(i))
     65             x=Lmonth;
     66             else
     67             x=Month;
     68             if(i==ys)
     69             j=ms;
     70             else
     71             j=1;
     72             for(; j<=12; j++)
     73             {
     74                day+=*(x+j);
     75                if(i==1752&&j==9)
     76                day-=11;
     77                if((day+5)%7<=1||(day+5)%7==6)
     78               {
     79                good++;
     80                luck++;
     81               }
     82             }
     83         }
     84 
     85         if(check(i))
     86             x=Lmonth;
     87             else
     88             x=Month;
     89             if(i==ys)
     90             j=ms;
     91             else
     92             j=1;
     93             for(; j<=me; j++)
     94             {
     95                day+=*(x+j);
     96                if(i==1752&&j==9)
     97                day-=11;
     98                if((day+5)%7<=1||(day+5)%7==6)
     99                {
    100                 if(j!=me)
    101                 good++;
    102                luck++;
    103                }
    104             }
    105             printf("%d %d
    ",luck,good);
    106     }
    107     return 0;
    108 }
  • 相关阅读:
    12.Scala- 注解
    11.Scala-特质
    10.Scala-继承
    9.Scala- 包和引入
    8.Scala-对象
    7.Scala-类
    6.Scala-高阶函数
    5.Scala-匹配模式
    4.Scala-数据结构
    Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类
  • 原文地址:https://www.cnblogs.com/bfshm/p/3524666.html
Copyright © 2011-2022 走看看