zoukankan      html  css  js  c++  java
  • 一天中,时针和分针相遇多少次,时分秒针相遇多少次?

     1 #include <stdio.h>
     2 
     3 //设置时分秒针的速度
     4 //时针720秒走一格,分针60秒走一格,秒针1秒走一格,钟表一圈共60格
     5 //因此时针速度为1/720,分针速度为1/60,但在程序中为了便于实现,全部扩大720倍
     6 //所以得出如下宏定义
     7 int main()
     8 {
     9     int vh=1; //时针速度
    10     int vm=12; //分针速度
    11     int vs=720; //秒针速度
    12     int circle=12*3600;
    13     
    14     int n=0;          
    15     int t=0;
    16 
    17     //循环一整天,共24*60*60秒
    18     /*思路:三针相遇并不一定是在整秒时相遇,也有可能是在相邻两秒之间相遇,例如某次是在秒针从1  秒跳到2秒的过程中相遇。
    19     但无论如何,在相遇的那一刻,秒针比分针多走的圈数比这次相遇前要多一圈,
    20     例如某时刻秒针比分针多走了100圈,在下次相遇时,秒针就比分针多走了101圈。同理,分针与时针,秒针与时针都满足这点。*/
    21     for(t=1;t<=24*60*60;t++){       
    22        int Diff_m_h_ago=(vm-vh)*(t-1)/circle;
    23        int Diff_m_h_now=(vm-vh)*t/circle;
    24        if(Diff_m_h_now-Diff_m_h_ago==1) //相遇总会比相遇的前一秒多走了1圈
    25        {
    26          n++;
    27          printf("第%d次相遇的时间为 %d:%d:%d\n",n,t/3600,t%3600/60,t%60);
    28        }
    29     }
    30     printf("一天中,时针和分针相遇%d次。\n\n",n);
    31     
    32     n=0;
    33     for(t=1;t<=24*60*60;t++)
    34     {
    35         //相遇的前一秒总会比相遇后少走了1圈
    36        int Diff_m_h_ago=(vm-vh)*(t-1)/circle;
    37        int Diff_m_h_now=(vm-vh)*t/circle;
    38        int Diff_s_m_ago=(vs-vm)*(t-1)/circle;
    39        int Diff_s_m_now=(vs-vm)*t/circle; 
    40        if(Diff_s_m_now-Diff_s_m_ago==1 && Diff_m_h_now-Diff_m_h_ago==1)
    41        {
    42            n++;
    43            printf("第%d次相遇的时间为 %d:%d:%d\n",n,t/3600,t%3600/60,t%60);
    44        }
    45     }
    46 
    47     printf("一天中,时分秒针相遇%d次。",n);
    48     
    49     getchar();
    50     return 0;
    51 }

     时针和分针相遇22次,时分秒针相遇2次。

  • 相关阅读:
    内容绘制到Bitmap上不成功警示
    一些c++面试题目
    Windows Socket 主要API功能
    面试问题(一)
    函数指针与指针函数
    机器学习和数据挖掘的网站
    vs2010打开vs2008程序出现错误
    MATLAB将矩阵使用.txt文件格式保存
    指针实现值交换
    堆与栈的区别
  • 原文地址:https://www.cnblogs.com/emituofo/p/2766475.html
Copyright © 2011-2022 走看看