1 条题解

  • 0
    @ 2024-12-24 10:06:20

    C :

    #include "stdio.h"
    int main()
    {
    	int s;
    	int n;
    	int a[7]={0},y[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    	int i,j;
    	scanf("%d",&n);
    	s=0;
    	for(i=1900;i<=1900+n-1;i++)
    	{
    		for(j=1;j<=12;j++)
    		{
    			s+=13;
    			a[s%7]++;
    			s=s-13+y[j];
    			if(j==2&&(i%4==0&&i%100!=0||i%400==0))
    				s++;
    		}
    	}
    	printf("%d %d ",a[6],a[0]);
    	for(i=1;i<5;i++)
    		printf("%d ",a[i]);
    	printf("%d",a[5]);
    }
    

    C++ :

    #include <iostream>
    
    using namespace std;
    
    int n;
    typedef struct date
    {
        int year,month,day;
    }date;
    int weekday(date a)//返回周几,0对应周日
    {
        int tm=a.month>=3?(a.month-2):(a.month+10);
        int ty=a.month>=3?a.year:(a.year-1);
        return (ty+ty/4-ty/100+ty/400+(int)(2.6*tm-0.2)+a.day)%7;
    }
    void madd(date &q)
    {
    	q.month++;
    	if (q.month>12)
    	{
    		q.month-=12;
    		q.year++;
    	}
    }
    
    
    int main()
    {
    //	freopen("friday.in","r",stdin);
    //	freopen("friday.out","w",stdout);
    	cin>>n;
    	int i,a[9]={0},f,coun=0;
    	date q;
    	q.year=1900,q.month=1,q.day=13;
    	
    	while (coun++<n*12)
    	{
    		f=weekday(q);
    		a[f]++;
    		madd(q);
    	}
    	cout<<a[6]<<' ';
    	for (i=0;i<5;i++)
    		cout<<a[i]<<' ';
    	cout<<a[i];
    	cout<<endl;
    //	fclose(stdin);
    //	fclose(stdout);
    	return 0;
    }
    

    Python :

    # coding=utf-8
    week=[0 for x in range(7)]
    def run(y):
    	if (y%4==0 and y%100!=0) or (y%400==0):
    		return 1
    	else:
    		return 0
    n=int(input())
    w=2
    for year in range(n):
    	day=[0,31,28,31,30,31,30,31,31,30,31,30,31]
    	if run(1900+year):#闰年处理
    		day[2]=29
    	else:
    		day[2]=28
    	for month in range(1,13):
    		d=1
    		while (d<=day[month]):
    			if d==13:
    				week[w]+=1				
    			d+=1
    			w+=1
    			w%=7
    for i in range(7):
        print(week[i],end='')
        if i<6:
            print(' ',end='')
    
    
    • 1

    信息

    ID
    2708
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者