Source: Rocky Mountain 2000
题目就是要问从起点时刻第一次走到终点时刻的过程中分针和时针相遇了多少次
我们知道时针每分钟走动0.5度分钟每分钟走动6度
t为从00:00到当前时刻走了多少分钟
那么分针就比时针多走了5.5t度
当没多走360就说明分针与时针相遇了一次
然后我们就算起点时刻和终点时刻分别对00:00来说相遇了时针多少次
然后他们的差值就是这段区间内相遇了多少次
如果起点时刻小于终点时刻那么就是这个差值加上11
因为一个周期内最多相遇11次
1#include<stdio.h>
2int a[100];
3int main()
4{
5 int a,b,c,d,l1,l2,ans,aa,cc;
6 printf("Initial time Final time Passes\n");
7
8 while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF)
9 {
10 aa=a;cc=c;
11 if(a==12)aa=0;
12 if(c==12)cc=0;
13 l1=aa*60+b;l2=cc*60+d;
14 ans=((l2*11)/720)-((l1*11)/720);
15 if(l1>l2)ans+=11;
16 printf(" %02d:%02d %02d:%02d %2d\n",a,b,c,d,ans);
17 }
18 return 0;
19}
20