codevs 2600 13号星期几?

本文介绍了一个程序设计问题,即如何计算从1900年1月1日起经过n年后,每个月13号落在星期一到星期日的具体次数。通过使用C语言实现的代码示例,展示了如何判断闰年并计算每年各月份天数,进而确定每月13号对应的星期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间限制: 1 s
 空间限制: 8000 KB
 题目等级 : 黄金 Gold
题目描述  Description

从1900年1月1日(星期一)

开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、......、星期日的次数分别是多少?

输入描述  Input Description

一行,一个整数(1<=n<=400)

输出描述  Output Description

一行7个整数,以空格相隔,(依次是星期一、星期二、星期三、......星期日的次数)

样例输入  Sample Input

1

样例输出  Sample Output

1  3  1  2  2  2  1

数据范围及提示  Data Size & Hint

1<=n<=500

 

屠龙宝刀点击就送

模拟 

#include <cstdio>

int n,cx[8],ts[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int pd(int a)
{
    if(a%4!=0||a%100==0&&a%400!=0||a%3200==0) return 0;
    else return 1;
}
int main()
{
    scanf("%d",&n);
    int xq=0,nian=1900;
    while(n)
    {
        if(pd(nian)) ts[2]=29;
        else ts[2]=28;
        int y=1;
        while(y!=13)
        {
            int t=0;
            xq=(xq+13)%7;
            if(xq==0) xq=7;
            cx[xq]++;
            if(y<12) xq=(xq+ts[y]-13)%7;
            else xq=(xq+ts[1]-13)%7;
            if(xq==0) xq=7;
            y++;
        }
        nian++;
        n--;
    }
    for(int i=1;i<=7;++i)
    printf("%d ",cx[i]);
    return 0;
}

 

转载于:https://www.cnblogs.com/ruojisun/p/6682839.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值