关于杭点的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 编辑 ]