zoukankan      html  css  js  c++  java
  • Problem B: 英雄无敌3(2)【模拟,日期转换】

    Problem B: 英雄无敌3(2)

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 295  Solved: 52
    [Submit][Status][Web Board]

    Description

    英雄无敌3中的兽人觉得人类的星期制度很好,要模仿这个制度,但他们大多都很愚蠢,他们搞不明白人类的星期制度。虽然他们出了很多题目(给出日期,输出星期几),但不知道答案,作为兽人的人类朋友,你可以帮助他们吗?(为了表示方便,0代表星期天,1代表星期一,2代表星期二,3代表星期三,4代表星期四,5代表星期五,6代表星期六)

    Input

    第一行输入一个数t,代表题目数。

    每个题目有3个正整数分别为y(0<y<=2013), m(0=<m<=20), d(0<=d<=40)分别代表年,月,日。

    Output

    对于每组案例,输出一个整数,代表星期几(当然由于兽人很愚蠢,他们给出的日期有可能是不存在的,对于这种情况,请输出-1)

    Sample Input

    1 2013 4 25

    Sample Output

    4
     
    【分析】:已知年月日求星期几有专门的公式,要注意的点是闰平年的二月天数不同,月份可以用常量数组表示。
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<string>
    #include<vector>
    #include<stack>
    #include<bitset>
    #include<cstdlib>
    #include<cmath>
    #include<set>
    #include<list>
    #include<deque>
    #include<map>
    #include<queue>
    using namespace std;
    typedef long long ll;
    const double PI = acos(-1.0);
    const double eps = 1e-6;
    const int INF = 1000000000;
    const int maxn = 100;
    int T,n,m;
    int year,mouth,day;
    
    int solve(int yy,int mm,int dd)
    {
        int m[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
        if(mm==0||mm>12||dd==0||dd>31)
        {
            return -1;
        }
        if(!((yy%4==0&&yy%100!=0)||yy%400==0))
            m[2]=28;
        else
            m[2]=29;
        if(dd>m[mouth])
        {
            return -1;
        }
        if(mm<3)//在普适公式/基姆拉尔公式中有个与其他公式不同的地方:
      //把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。 { yy--; mm+=12; } int c=yy/100; int y=yy%100; return (((c/4-2*c+y+y/4+13*(mm+1)/5+dd-1)%7+7)%7); } int main() { scanf("%d",&T); int ans; while(T--) { scanf("%d %d %d",&year,&mouth,&day); if(year<=0||mouth<=0||day<=0||mouth>12||day>31) printf("-1 "); else printf("%d ",solve(year,mouth,day)); } return 0; }

      

     
  • 相关阅读:
    2020软件工程最后一次作业 it
    javaArrayList it
    js二进制数据转图片 it
    002addTwoNumbers it
    1.1选择select it
    js保存图片至本地 it
    npm ERR! code E404 it
    2020软件工程第三次作业 it
    2020软件工程第二次作业 it
    react打包后找不到静态文件 it
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7373922.html
Copyright © 2011-2022 走看看