oj 2076

题目:夹角有多大[http://acm.hdu.edu.cn/showproblem.php?pid=2076]

2076.png

1.png

做这道题时主要是思路清晰。时与分的位置计算是不同的,首先将时钟确定为一份,每一分到分的距离为60,那么总的格数为3600个,我们需要做的便是将分针与时针的位置表现在这些格数的位置。
在分中,每一分占1/60个格数,故有分的格数为m/60,分到下一个分的距离是60s,故而秒计算应为秒数s化为分,即s/60,化为格数应为s/60/60。
而在时中,每一小时占1/12个格数,而每一分每一秒也会使时针进行移动。每一分对时针的影响为1/12/60。而秒对其影响为分/60。
做到这里最绕的部分便已做完,取时针位置与分针位置差的绝对值。在将该值与360进行相乘(因将时钟总的确定为一份,一圈360°)便可得到一个值,但题目要求在0~180°之间,故而得到该值时要进行一个对于180°的判断。同理,一圈只能有12小时,在获得时间时也要进行一个对于时的判断计算。

import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        while(n-->0){
            int h = scan.nextInt();
            int m = scan.nextInt();
            int s = scan.nextInt();
            if(h>=12) h=h-12;
            double fen = m/60.0+s/60.0/60.0;
            double shi = h/12.0+m/12.0/60.0+s/12.0/60.0/60.0;
            double time = Math.abs(fen-shi)*360;
            if(time>=180) time=360-time;
            int k = (int)(time);
            System.out.println(k);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容