C

来源:互联网 发布:淘宝试用报告草稿在哪 编辑:程序博客网 时间:2024/06/08 01:06
时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少。现在xhd知道的只有时间,请你帮他算出这个夹角。

注:夹角的范围0180
,时针和分针的转动是连续而不是离散的。
Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有三个整数h(0 <= h < 24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。
Output
对于每组输入数据,输出夹角的大小的整数部分。
Sample Input
28 3 175 13 30
Sample Output
13875



思路:

我觉得这道题很关键的一个地方是:我们要明白!时针和分针的转动都是连续的而不是离散的!也就是说!稍微动一点点都会引起变化!!!

还有一个关键的地方:我们应该如何统一呢?因为秒,分都是60进制的,而小时是12一循环的。


这里有很多很多细节。我们一一剖析。


首先:


我们针对秒,可以先计算它对分钟的变化!

minute=minute+second/60;(注意second、minute、hour在这里我都是设置了double)

这就是我们目前的真正minute!

而对于hour

hour=hour+minute/60;

这就是我们目前的真正hour!

这里我们会想到一个问题,hour是12一循环的,所以我们一开始就应该对hour进行一次判断

如果hour大于等于12,那么hour=hour-12;


这个时候计算夹角,我们就要统一一下!统一采用我们时钟上的计算方法!


也就是说,我们的minute要除以5;


方便理解,就是30分是,分针是指向时钟上的6的。


统一了之后,我们就可以计算时针和分针之间的差距d

d=时针和分针的距离(大于0);

针对我们一个时钟,12格对应360度,所以一格30度。

所以夹角就等于d*30度!


这个时候有一个问题,因为我们的夹角是180以内的,所以大于180度的时候,就要取360-这个夹角

控制下输出就好了!


#include<iostream>using namespace std;int main(){int n=0;cin>>n;double hour=0;double minute=0;double second=0;double d=0;double angel=0;for(int i=0;i<n;i++){cin>>hour>>minute>>second;if(hour>=12)hour=hour-12;minute=minute+second/60;hour=hour+minute/60;minute=minute/5;d=minute-hour;if(d<0)d=-1*d;angel=d*30;if(angel>180)angel=360-angel;cout<<(int)angel<<endl;}} 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2岁宝宝一直吐怎么办 两岁宝宝门牙龋齿怎么办 两岁宝宝得龋齿怎么办 两岁宝宝长龋齿怎么办 宝宝2岁不吃饭怎么办 两岁宝宝总是吐怎么办 3岁儿童受凉呕吐怎么办 两岁宝宝四天没拉大便怎么办 两岁宝宝发烧吐怎么办 四岁宝宝吐了怎么办啊 3岁宝宝突然吐了怎么办 宝宝撑着了吐拉怎么办 2岁宝宝体温37.5怎么办 宝宝2岁乳牙烂了怎么办 孕40周还没入盆怎么办 孕妇脸上长斑了怎么办 七个月宝宝大便干怎么办 两月大婴儿不拉大便怎么办 周岁宝宝大便出血了怎么办 十一个月宝宝大便干燥怎么办 8个月宝宝大便干燥怎么办 7个月宝宝大便干燥怎么办 11个月宝宝大便干燥怎么办 9个月宝宝大便干燥怎么办 10个月宝宝大便干燥怎么办 宝宝两天没拉粑粑了怎么办 小学闺蜜嫉妒我怎么办 三年级孩子对应用题理解很差怎么办 我嫉妒我的朋友怎么办 嫉妒同学比我好怎么办 宝宝生在家里了怎么办 在家不小心生了怎么办 葫芦干了有黑点怎么办 单位费用发票丢失了怎么办 1岁宝宝太调皮了怎么办 孩子和同学打架家长该怎么办 孩子被大人打了怎么办 小孩不跟大人沟通怎么办 2岁小朋友爱动手怎么办 小班爱动手的小朋友怎么办 宝宝对小朋友不友好爱动手怎么办