程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 時針和秒針重合次數

時針和秒針重合次數

編輯:C++入門知識

問題:24小時內時針和秒針重合幾次

分析:此題看似有點嚇人,但若想到一點,就可秒殺此題。首先,要明白什麼是時針和秒針重合,因為秒針走一秒是鐘表中的一格,而時針可以看成是連續的轉動,此處重合就要理解為在秒針停下的那一刻重合。想到這點,再看時針若想和秒針重合,必須走到一格時,秒針剛好走到這一格。已知一格有12分鐘,時針走到每格時,必是整分鐘,也即秒針必定在12點的位置。那麼兩者若想重合,只有在兩者同時到達12點處。24小時內,滿足的時刻只有:0時,12時,24時。所以一天內只能重合3次。也就是說,雖然每一秒兩者都會擦肩,但一天內真正相遇也就那麼僅有的三次。

驗證:時針每走一格走過6度,秒針走過12(m)*60(s)*6度,兩者重合即為對360取模後兩者相等。

[cpp] 
void Solve() { 
    const int GRIDS = 24 * 5;   // 24 hours; 5 grids per hour; 
    const int DEGREE = 360; 
    const int SECOND_OF_MINUTE = 60; 
    const int DEGREE_OF_GRID = 6; 
    const int SECOND_OF_GRID = 12 * SECOND_OF_MINUTE; 
     
    int count = 0; 
    for (int i = 0; i <= GRIDS; ++ i) { 
        int dh = (DEGREE_OF_GRID * i) % DEGREE; 
        int ds = (DEGREE_OF_GRID * i * SECOND_OF_GRID) % DEGREE; 
        if (dh == ds) ++ count; 
    } 
    printf("%d\n", count); 

PS:趨勢科技,筆試,2013,選擇

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved