分析:给你一个时间,让你输出3个时分,时秒,分秒的夹角。如果时间是hh(0<=hh<12),mm,ss,那么度数分别是s=6*ss; m=6*mm+ss/10; h=30*hh+mm/2+ss/120; 然后给每个角度都乘以120,这样得出来的角度都是整数了,用k先记录着,这样夹角除以k就行了。
# include <stdio.h>
# define abs(x) x>0?x:-(x);
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int i,k,t,hh,mm,ss,h,m,s,ans[4],g[4];
scanf("%d",&t);
while(t--)
{
scanf("%d:%d:%d",&hh,&mm,&ss);
if(hh>=12)
hh-=12;
k=120;
h=3600*hh+60*mm+ss;
m=720*mm+12*ss;
s=720*ss;
ans[1]=abs(h-m);ans[2]=abs(h-s);ans[3]=abs(m-s);
for(i=1;i<=3;i++)
if(ans[i]>180*k)
ans[i]=360*k-ans[i];
for(i=1;i<=3;i++)
{
g[i]=gcd(ans[i],k);
if(k/g[i]==1)
printf("%d ",ans[i]/g[i]);
else
printf("%d/%d ",ans[i]/g[i],k/g[i]);
}
putchar('\n');
}
return 0;
}