关于杭点的1006,看到别人写,自己试试看
程序代码:#include"stdio.h" //一共有 43200秒
#include"math.h"
int ff(int sec,float d)//做一个判断是否符合条件
{
float h_d,min_d,sec_d;//1s=6度,1/60min=0.1度,1/3600h=1/600度
sec_d=sec%60*6;
min_d=sec%3600*0.1;
h_d=sec%43200*1/600;
return (fabs(sec_d-min_d)>d)*(fabs(sec_d-h_d)>d)*(fabs(min_d-h_d)>d);
}
int main()
{
int i,su,s;
float dd;
while(scanf("%f",&dd),dd!=-1)
{
//printf("%f\n",d);
for(i=0,su=0;i<43200;i++)
{
su+=ff(i,dd);
//printf("%d\n",i);
}
//printf("%d %.3f\n",su,float(su)/43200);
printf("%.3f\n",float(su*2)/43200*100);//不清楚这里有没有4舍5入的说法
}
}这是我写的1006的代码
就里前面是从1-43200秒半天,暴力算每一秒的情况,我把调用函数单独调出来调试,在2999秒时是错误的 ,但放在这个完整的函数中的时候就是对的,被计算进去的这第2999秒
这就有点狗
不知道是不是自己的思路错
个人理解题目是3个针,秒针,分针,时针,
分每一秒去判断
因为数据不是很大,就选择用这么暴力的解法
[ 本帖最后由 Magic_July 于 2013-5-7 19:50 编辑 ]







