杭电acm1201
http://acm.hdu.edu.cn/showproblem.php?pid=1201
这题一直搞不清楚第一年和最后一年怎么放到循环里,后来发现没有和谐的方法,所以一个一个拆开了
View Code
1 #include<stdio.h> 2 int leap(int year) 3 { 4 if((year%4==0&&year%100!=0)||(year%400==0)) 5 return 1; 6 else return 0; 7 } 8 int main() 9 { 10 int y,m,d,sum,i,n; 11 scanf("%d",&n); 12 while(n--) 13 { 14 scanf("%d-%d-%d",&y,&m,&d); 15 if(leap(y+18)==0) 16 { 17 if(m==2&&d==29) 18 { 19 printf("-1\n"); 20 continue; 21 } 22 } 23 sum=18*365; 24 if(leap(y)&&m<3) 25 sum++; 26 if(leap(y+18)&&m>=3) 27 sum++; 28 for(i=y+1;i<y+18;i++) 29 { 30 if(((i%4==0&&i%100!=0)||i%400==0)) 31 sum++; 32 } 33 printf("%d\n",sum); 34 } 35 return 0; 36 }