C
来源:互联网 发布:淘宝试用报告草稿在哪 编辑:程序博客网 时间:2024/06/08 01:06
时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少。现在xhd知道的只有时间,请你帮他算出这个夹角。
注:夹角的范围0,180 Input 输入数据的第一行是一个数据T,表示有T组数据。
每组数据有三个整数h(0 <= h < 24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。
Output 对于每组输入数据,输出夹角的大小的整数部分。
Sample Input Sample Output
注:夹角的范围
,时针和分针的转动是连续而不是离散的。
每组数据有三个整数h(0 <= h < 24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。
28 3 175 13 30
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;}}
阅读全文
0 0
- c
- c
- c
- c
- C
- c
- c
- c
- C+
- c
- C
- c
- c
- c
- C
- C
- c
- C
- 数组先小于等于再大于等于的调整
- HDU-2546-饭卡(01背包)
- 按键驱动(一)-中断
- uikit——Auto Layout——NSLayoutAnchor
- Git学习之本地分支和远程分支关联
- C
- 数据字典依赖easyui onShowPanel 版本
- 在数组中找到第 k 小的数
- uikit——Auto Layout——UIView——anchor
- 四大组件之service
- 各种mysql版本下载
- HDFS常用命令
- 使用ide开发一个servlet,该servlet显示当前helloworld以及当前日期(MyEclipse)
- span标签里的内容过长设置隐藏(CSS)