ZOJ3326小技巧

来源:互联网 发布:简述java垃圾回收机制 编辑:程序博客网 时间:2024/06/05 05:28
原题http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3326
#include <stdio.h>int a,b,c,aa,bb,cc;int slove(){int flag=0,flag2=0;int i,j,k,sum=0,s1;for(i=a;i<=aa;i++){if(flag==0)//月的处理j = b;elsej = 1;for(;j<=12;j++)//注意这里{flag = 1;if((j==1||j==3||j==5||j==7||j==8||j==10||j==12))s1=31;else if(j == 2){if((i%4==0&&i%100!=0)||i%400==0)s1=29;elses1=28;}elses1 = 30;if(flag2 == 0)//日的处理k = c;elsek = 1;for(;k<=s1;k++)//注意这里{flag2=1;if(i==aa&&j==bb&&k==cc){if(  (j==2||j==3||j==5||j==7||j==11)&&(k==2||k==3||k==5||k==7||k==11||k==13||k==17||k==19||k==23||k==29||k==31))sum++;return sum;}else if( (j==2||j==3||j==5||j==7||j==11)&&(k==2||k==3||k==5||k==7||k==11||k==13||k==17||k==19||k==23||k==29||k==31))sum++;}}}return 0;//注意这样写了函数之后不要忘了这一步。}int main(){int t;while(~scanf("%d",&t)){while(t--){scanf("%d%d%d%d%d%d",&a,&b,&c,&aa,&bb,&cc);printf("%d\n",slove());}}return 0;}备注,此类题目肯定有简单的算法。就应该按照正面的去思考,算法的精髓应该在细节的处理上

0 0