1 条题解
-
0
C :
#include<stdio.h> int nianpanduan(int a) { if(a%100!=0&&a%4==0||a%400==0) return 1; return 0; } main() { int month[13]={0,12,31,28,31,30,31,30,31,31,30,31,30}; int mon,tue,wed,thu,fri,sat,sun,sum,i,j,n; while(scanf("%d",&n)!=EOF) { mon=0;tue=0;wed=0;thu=0;fri=0;sat=0;sun=0; for(i=1900,sum=0;i<1900+n;i++) for(j=1;j<=12;j++) { sum+=month[j]; if(j==3&&nianpanduan(i)==1) { sum++; } if(sum%7==0) mon++; if(sum%7==1) tue++; if(sum%7==2) wed++; if(sum%7==3) thu++; if(sum%7==4) fri++; if(sum%7==5) sat++; if(sum%7==6) sun++; if(j==12) sum+=19; } printf("%d %d %d %d %d %d %d\n",sat,sun,mon,tue,wed,thu,fri); } }
C++ :
/* ID:crazysona PROB:friday LANG:C++ */ #include <stdio.h> #include <stdlib.h> #include <string.h> int isleap(int y) { return y % 4==0 && (y % 100 != 0 || y % 400 == 0); } int mtab[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int mlen(int y, int m) { if(m == 1) return mtab[m]+isleap(y); else return mtab[m]; } int main(void) { int i, m, dow, n, y; int ndow[7]; //freopen("2.in", "r", stdin); //freopen("2.out", "w", stdout); while(scanf("%d", &n) != EOF){ for(i=0; i<7; i++) ndow[i] = 0; dow = 0; for(y=1900; y<1900+n; y++) { for(m=0; m<12; m++) { ndow[dow]++; dow = (dow+mlen(y, m)) % 7; } } for(i=0; i<7; i++) { if(i) printf(" "); printf("%d", ndow[i]); } printf("\n"); } return 0; }
- 1
信息
- ID
- 2797
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者