zoukankan      html  css  js  c++  java
  • USACO section 1.1 Friday the Thirteenth

    这道题挺不好写的,题目是说给出一个年份范围,统计这个范围内星期一到星期日为 13 号的个数。

    /*
    PROG: friday
    LANG: C++
    */
    # include <cstdio>
    
    const char daytab[2][13] = {
        {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
        {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    };
    
    int isLeap(int year)
    {
        return year%4 == 0 && year%100 != 0 || year%400 == 0 ? 1 : 0;
    }
    
    int dayOfMonth(int year, int day)
    {
        int leap, i;
        leap = isLeap(year);
        for (i = 1; day > daytab[leap][i]; ++i)
            day -= daytab[leap][i];
        return day;
    }
    
    int main()
    {
        int n;
    
        freopen("friday.in", "r", stdin);
        freopen("friday.out", "w", stdout);
    
        scanf("%d", &n);
        int f[7];
        for (int i = 0; i < 7; ++i)
            f[i]  = 0;
        int day = 0, wk = 0;
        for (int year = 1900; year < 1900+n; )
        {
            wk = (wk+1) % 7;
            ++day;
            if (dayOfMonth(year, day) == 13) ++f[wk];
            if ((day == 365 && isLeap(year) == 0) || (day == 366 && isLeap(year) == 1))
            {
                ++year;
                day = 0;
            }
        }
        printf("%d", f[6]);
        for (int i = 0; i < 6; ++i)
            printf(" %d", f[i]);
        printf("\n");
    
        fclose(stdin);
        fclose(stdout);
    
        return 0;
    }

    /**/

  • 相关阅读:
    Pandas to_sql将DataFrame保存的数据库中
    Pandas 的groupby操作
    Hibernate(一)
    EasyUI
    Java面试题
    Solr
    Lucene
    SpringMVC(二)
    MyBatis(二)
    MyBatis(一)
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2594123.html
Copyright © 2011-2022 走看看