时针分针重合问题与时针、分针、秒针重合问题

时针分针重合问题与时针、分针、秒针重合问题实质都是数学问题,可以用数学方法直接解决:





相应的C代码:

//时针与分针的重合时的时间
#include<stdio.h>
int main(void)
{
   int h,m;
   float s;
   h=0; 
   m=0; 
   s=0.0; //
    
    printf("h=%d,m=%d,s=%f\n",h,m,s);
   for(int i=1;i<22;i++)
   {
    h=(720*i)/(11*60);
    m=(720*i-h*60*11)/11;
    s=((720*i-h*60*11-m*11)*1.0)/11;
    s=s*60;
        printf("h=%d,m=%d,s=%f\n",h,m,s);
   }
   return 0;
}
 
//求取n!的末尾的0
#include<stdio.h>
int zero_num(long n)
{
     int tag=5;
     int total_num=0;
     while(tag<=n)
     {
         for(int k=tag;k<=n;k+=tag)
         {
              if(k%tag==0) total_num=total_num+1;
         }
         tag=tag*5;
     }
     return total_num;
}
int main(void)
{
    long n;
    int num;
    printf("please enter a num(>0):\n");
    scanf("%ld",&n);
    num=zero_num(n);
    printf("%ld! have %d tail zero number\n",n,num);
    return 0;
}
 
 

//时针,分针、秒针重合代码,转载自csdn博客
#include<stdio.h>
//设置时分秒针的速度
//时针720秒走一格,分针60秒走一格,秒针1秒走一格,钟表一圈共60格
//因此时针速度为1/720,分针速度为1/60,但在程序中为了便于实现,全部扩大720倍
//所以得出如下宏定义
#define v_h 1 //时针速度
#define v_m 12 //分针速度
#define v_s 720 //秒针速度
#define s_total (720*60) //一圈的总路程
int s_h(int time)
{
return v_h*time;
}
int s_m(int time)
{
return v_m*time;
}
int s_s(int time)
{
return v_s*time;
}
int main()
{
  int n=0;   
  int time=0;
  //循环一整天,共24*60*60秒
  /*思路:三针相遇并不一定是在整秒时相遇,也有可能是在相邻两秒之间相遇,例如某次是在秒针从1 秒跳到2秒的过程中相遇。但无论如何,在相遇的那一刻,秒针比分针多走的圈数比这次相遇前要多一圈,例如某时刻秒针比分针多走了100圈,在下次相遇时,秒针就比分针多走了101圈。同理,分针与时针,秒针与时针都满足这点。*/
  for(time=1;time<=24*60*60;time++)
  {
  //相遇的前一秒总会比相遇后少走了1圈
  if(((s_s(time)-s_m(time))/s_total+1)==((s_s(time+1)-s_m(time+1))/s_total) &&
  ((s_m(time)-s_h(time))/s_total+1)==((s_m(time+1)-s_h(time+1))/(s_total)))
  {
  n++;
  printf("第%d次相遇的时间为 %d:%d:%d\n",n,(time+1)/3600,(time+1)%3600/60,(time+1)%3600%60);
  }
  }
  printf("一天中时分秒共相遇了%d次\n",n);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值