码迷,mamicode.com
首页 > 其他好文 > 详细

acdream 1686(数学)

时间:2015-04-15 23:23:39      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:数学

题意:给出了一个钟表上的准确时间,hh:mm:xx,问多少秒后时针和分针能够重合。

题解:计算此时分针和时针距离0点的准确角度hd与md,然后每秒分针转动mm = 0.1度,时针转动hh = 1/120,然后如果要分针与时针重合,hd + hh * x = md + mm * x,当hd > md时x即为解,否则先让分针走到0点,然后时针加上相应角度继续用上面的式子计算x。

#include <stdio.h>
double a, b, c;
double hh = 1.0 / 120; //1秒时针走的角度
double mm = 0.1;  //1秒分针走的角度

int main() {
	int t;
	scanf("%d", &t);
	while (t--) {
		scanf("%lf:%lf:%lf", &a, &b, &c);
		if (a >= 12)	
			a = a - 12;
		double hd = hh * (c + b * 60 + a * 3600);
		double md = mm * (c + b * 60);
		if (hd - md > 1e-9)
			printf("%.6lf\n", (hd - md) / (mm - hh));
		else {
			double temp = (360.0 - md) / mm;
			hd = hd + temp * hh;
			md = 0;
			printf("%.6lf\n", temp + (hd - md) / (mm - hh));
		}
	}
	return 0;
}


acdream 1686(数学)

标签:数学

原文地址:http://blog.csdn.net/hyczms/article/details/45066545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!