#include<stdio.h>
z(y,m){
if(m<3){
y--;
m+=12;
}
return (y/100-y/50+y%100+y%100/4+13*(m+1)/5+35)%7;
}
l(y){
return (y%4==0&&y%100!=0||y%400==0);
}
main(y,s,i){
while(scanf("%d",&y)!=EOF){
s=0;
for(i=1;i<=12;i++)
(z(y,i)==6&&(i!=2||i==2&&l(y)))?s++:1;
printf("%d\n",s);
}
}
压行后:
#include<stdio.h>
z(y,m){if(m<3){y--;m+=12;}return(y/100-y/50+y%100+y%100/4+13*(m+1)/5+35)%7;}l(y){return(y%4==0&&y%100!=0||y%400==0);}main(y,s,i){while(scanf("%d",&y)!=EOF){s=0;for(i=1;i<=12;i++)(z(y,i)==6&&(i!=2||i==2&&l(y)))?s++:1;printf("%d\n",s);}}
不知道为什么 WA on 1.