1 条题解
-
0
C :
#include<stdio.h> int main() { int n,week,c,y,i,j; while(scanf("%d",&n)!=EOF) { int a[8]={0}; for(i=0;i<n;i++) { if(i==n-1) { c=(1900+i)/100; y=1900+i-c*100; for(j=3;j<=12;j++) { week=(c/4)-2*c+(y+y/4)+(13*(j+1)/5)+12; while(week<0){week+=7;} week%=7; switch(week) { case 0:a[7]++;break; case 1:a[1]++;break; case 2:a[2]++;break; case 3:a[3]++;break; case 4:a[4]++;break; case 5:a[5]++;break; case 6:a[6]++;break; } } } else { c=(1900+i)/100; y=1900+i-c*100; for(j=3;j<=14;j++) { week=(c/4)-2*c+(y+y/4)+(13*(j+1)/5)+12; while(week<0){ week+=7; } week%=7; switch(week) { case 0:a[7]++;break; case 1:a[1]++;break; case 2:a[2]++;break; case 3:a[3]++;break; case 4:a[4]++;break; case 5:a[5]++;break; case 6:a[6]++;break; } } } } a[6]+=1; a[2]+=1; printf("%d %d %d %d %d %d %d\n",a[6],a[7],a[1],a[2],a[3],a[4],a[5]); } }
C++ :
/* ID:wangzhe30 LANG:C PROG:friday */ #include <stdio.h> int main() { //freopen("friday.in","r",stdin); //freopen("friday.out","w",stdout); int n; while(scanf("%d",&n)!=EOF) { int year,month2=0,m,dat; int day[7]={0},month[13]={0,0,0,0,0,0,0,0,0,0,0,0,0}; month[1]=1; for (year=0;year<n;year++) { if(!((1900+year)%400)||!((1900+year)%4)&&((1900+year)%100)) month2=1; else month2=0; for (m=1;m<=13;m++) { if(m==1||m==3||m==5||m==7||m==8||m==10) { dat=(month[m]+5)%7; day[dat]++; month[m+1]=(month[m]+3)%7; } if(m==2) { dat=(month[m]+5)%7; day[dat]++; month[3]=(month[2]+month2)%7; } if(m==12) { dat=(month[m]+5)%7; day[dat]++; month[1]=(month[12]+3)%7; } if(m==4||m==6||m==9||m==11) { dat=(month[m]+5)%7; day[dat]++; month[m+1]=(month[m]+2)%7; } } } printf("%d %d %d %d %d %d %d\n",day[6],day[0],day[1],day[2],day[3],day[4],day[5]); } }
- 1
信息
- ID
- 1364
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者