简单题;
就是让你把时间a调到时间b;
一般容易错,可以利用循环的思想;
a,b直接的距离=min{(a+k-b)%k,(b+k-a)%k};即顺时针距离和逆时针距离的最小值;
#include<stdio.h>
int main ()
{
int n,x1,x2,x3,y1,y2,y3,s,s1,s2;
char a[3],b[3];
scanf("%d",&n);
while(n--)
{
s=0;
scanf("%d:%d%s",&x1,&x2,a);
scanf("%d:%d%s",&y1,&y2,b);
printf("Going from %d:%02d%s to %d:%02d%s requires ",x1,x2,a,y1,y2,b);
x3=x2%10;
x2=x2/10;
y3=y2%10;
y2=y2/10;
if(a[0]!=b[0])//上下午;
s++;
s1=(x3-y3+10)%10;
s2=(y3-x3+10)%10;
s+=(s1>s2?s2:s1); //分钟的个位;
s1=(x2-y2+6)%6;
s2=(y2-x2+6)%6;
s+=(s1>s2?s2:s1);//分钟的十位;
x1--;
y1--;
s1=(x1-y1+12)%12;
s2=(y1-x1+12)%12;
s+=(s1>s2?s2:s1);//时针,转化为0-11再求;
if(s!=1) //加不加es;
printf("%d pushes.\n",s);
else
printf("%d push.\n",s);
}
return 0;
}