杭电acm1006的问题,以秒为单位进行解答怎么改才能AC

来源:互联网 发布:hive sql distinct 编辑:程序博客网 时间:2024/05/01 18:26
/* 一天3600*24 s 对于秒针来说移动 6度/s 对于分针来说  1/10度 /s  对于时针 1/240度 /s
以度为单位 
*/
#include<stdio.h>
#include<math.h>
int duan(double s_h, double m_h,double h_h,int n)
{
double sdm,sdh,mdh;
if(fabs(s_h-h_h)>=180)
{
sdh=360-fabs(s_h-h_h);
}
else
sdh=fabs(s_h-h_h);
if(fabs(s_h-m_h)>=180)
{
sdm=360-fabs(s_h-m_h);
}
else
sdm=fabs(s_h-m_h);
if(fabs(h_h-m_h)>=180)
{
mdh=360-fabs(h_h-m_h);
}
else
mdh=fabs(h_h-m_h);
if(sdm>n&&sdh>n&&mdh>n)
return 1;
else 
return 0;
}
int main()
{
    int n;
    long sum=0;
    double s_h,m_h,h_h;
    while(scanf("%d",&n)&&n!=-1)
    {
s_h=0;
m_h=0;
h_h=0;
sum=0;
    if(n<0&&n>120)
    break;
    for(long i=0;i<3600*24;i++)
{
s_h+=6;
m_h+=1/10.;
h_h+=1/240.;
if(s_h>360)
s_h-=360;
if(m_h>360)
m_h-=360;
if(h_h>360)
h_h-=360;
if(duan(s_h,m_h,h_h,n))
sum++;
}
printf("%.3lf\n",sum/36./24.);
    }
}
0 0