oj 2076

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

2076.png

1.png

做這道題時主要是思路清晰。時與分的位置計算是不同的,首先將時鐘確定為一份,每一分到分的距離為60,那么總的格數(shù)為3600個,我們需要做的便是將分針與時針的位置表現(xiàn)在這些格數(shù)的位置。
在分中,每一分占1/60個格數(shù),故有分的格數(shù)為m/60,分到下一個分的距離是60s,故而秒計算應(yīng)為秒數(shù)s化為分,即s/60,化為格數(shù)應(yīng)為s/60/60。
而在時中,每一小時占1/12個格數(shù),而每一分每一秒也會使時針進行移動。每一分對時針的影響為1/12/60。而秒對其影響為分/60。
做到這里最繞的部分便已做完,取時針位置與分針位置差的絕對值。在將該值與360進行相乘(因?qū)r鐘總的確定為一份,一圈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);
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容