时钟(分针和时针的重合问题)

简介: 时钟(分针和时针的重合问题)

问题描述

从a点b分到s点t分时针和分针重合多少次?

输入

有多组数据,每组1行4个数 a,b,s,t. 1<=a,s <=12, 0<=b,t<60. 0 0 0 0结束.

输出

参看以下样例

 

输入样例 1

12 50 1 2

3 8 3 20

2 45 11 0

11 0 3 20

1 2 12 50

3 20 3 8

0 0 0 0

输出样例 1

0

1

8

4

11

10

题目并不难理解,就是要我们计算两个时间点内时针和分针的重合次数。

对此我们先对分针和时针的重合规律做一下分析:

不难发现从1~12h,每一小时分针和时针都会重合一遍,而0~1h内,时针和分针不会重合,也就是说,在完整的12小时内,分针和时针只会重合11次。

另外我们还需要知道的是分针和时针每分钟移动的角度:

1、分针:分针每分钟走整个钟面的1/60,所以时针每分钟走的度数为6°。

2、时针:时针每分钟走整个钟面的1/720,所以时针每分钟走的度数为0.5°。

程序设计:

一、大致可以分为三种情况:

1、两个时间点在同一个小时内,且后一个时间点大于前一个时间点。即:a==s&&b<t

对此我们只需分别判断两个时间点的时针和分针的角度大小关系即可。

若时间点一的分针角度小于时针角度,同时时间点二的分针角度大于时针角度,重合次数加一,其他情况重合次数不变。

2、两个时间点在同一个周期(12h)内。即:a<s

对此我们主要分三步计算:

(1)判断a:b~a+1:00是否有重合;

(2)判断a+1~s:00的重合次数(s-a-1);

(3)判断s:00~s:t是否有重合。

3、两个时间点不在同一个周期(12h)内。即:(a==s&&b>t)||(a>s)

对此我们也分三步来计算:

(1)判断a:b~a+1:00是否有重合;

(2)判断a+1~12:00的重合次数+1:00~s:00的重合次数(12-a-1+s-1);

(3)判断s:00~s:t是否有重合。

代码如下:

#include<stdio.h>
int main()
{
  int a,b,s,t;
  while(scanf("%d %d %d %d",&a,&b,&s,&t))
  {
    int sum=0;
    if(a==0&&b==0&&s==0&&t==0) break;
    float h1=a*30+0.5*b,m1=b*6,h2=s*30+0.5*t,m2=t*6;
    //printf("h1=%.2f m1=%.2f h2=%.2f m2==%.2f\n",h1,m1,h2,m2);
    if(a==s&&b<t)
    {
      if(h1>m1&&h2<m2) sum++;
    }
    else if(a<s)
    {
      if(h1>m1) sum++;
      if(h2<m2) sum++;
      sum+=s-a-1;
    }
    else
    {
      if(h1>m1) sum++;
      if(h2<m2) sum++;
      sum+=12-a-1;
      sum+=s-1;
    }
    printf("%d\n",sum);
  }
  return 0;
 } 
目录
相关文章
BJT放大电路
BJT放大电路是指使用双极型晶体管(BJT)作为主要放大元件的电路。BJT是一种常见的活性元件,具有放大信号的能力,因此广泛应用于各种放大电路中。
206 0
|
3月前
|
编解码
巡线偏移量计算
【9月更文挑战第24天】
49 10
放大电路频率响应
放大电路的频率响应是指输入信号在不同频率下经过放大电路后的输出信号的变化情况。频率响应通常以幅频特性和相频特性表示。
162 0
|
传感器
反相放大电路的介绍
一、反相放大电路的原理 反相放大电路是基于放大器的输入端和输出端之间的差动运算实现的。它的基本原理是将输入信号通过电阻网络输入到放大器的反相输入端,经过放大后,再输出到放大器的输出端。放大器的作用是将输入信号放大,并输出其相反的信号。 二、反相放大电路的特点 1. 放大倍数可调:反相放大电路可以通过调整电阻值来改变放大倍数,满足不同应用场景的需求。 2. 相位反转:反相放大电路可以将输入信号进行相位反转,输出其相反的信号,适用于需要反向控制或反向操作的应用。 3. 简单实用:反相放大电路的结构简单,易于实现和调试,成本较低。 4. 高稳定性:反相放大电路具有较高的稳定性和线性度,能够准确地放大
386 1
BJT的三种基本放大电路和复合管
BJT的三种基本放大电路是共发射极放大电路(Common Emitter Amplifier)、共集电极放大电路(Common Collector Amplifier)和共基极放大电路(Common Base Amplifier)。
530 0
场效应管及其放大电路
场效应管(Field Effect Transistor,简称FET)是一种三端器件,由栅极、漏极和源极组成。它的工作原理是利用栅极电压控制漏极-源极电流,从而实现信号的放大和开关控制。
142 0
|
传感器 前端开发
BJT差分式放大电路的介绍
一、基本原理 BJT差分式放大电路的基本原理是利用两个晶体管的共射极配置来放大差分输入信号。其中一个晶体管作为输入管,另一个晶体管作为负载管。当差分输入信号的差值发生变化时,输入管的基极电压也会发生变化,导致输入管的电流变化。负载管通过负载电阻来接收输入管的电流变化,并产生相应的输出电压。因此,BJT差分式放大电路可以将差分输入信号放大为差分输出信号。 二、电路结构 BJT差分式放大电路通常由两个晶体管、两个输入电阻、一个负载电阻和一个电源组成。其中,两个晶体管的发射极通过两个输入电阻与差分输入信号相连,基极通过电源与地相连。负载电阻通过两个晶体管的集电极与电源相连,输出信号通过负载电阻与地相
413 0
|
传感器
同相放大电路的介绍
同相放大电路是一种常见的电子放大电路,它可以将输入信号放大到更高的幅度,并保持输入信号的相位不变。本文将介绍同相放大电路的工作原理、特点以及应用领域。 一、工作原理 同相放大电路是由一个放大器和一个反馈网络组成的。放大器接收输入信号,并将其放大到更高的幅度。反馈网络将部分放大后的信号反馈给放大器的输入端,以实现对输入信号的放大。放大器和反馈网络之间通过一个电阻连接,用于控制反馈信号的幅度。 当输入信号进入放大器时,放大器会将其放大到更高的幅度。同时,反馈网络将放大后的信号反馈给放大器的输入端。由于反馈信号与输入信号具有相同的相位,因此放大器将继续放大相位相同的信号。这样,通过不断的反馈,
354 0
|
前端开发 JavaScript
CSS动画篇之炫酷时钟之时钟墙
CSS动画篇之炫酷时钟之时钟墙
93 1
|
C++
几种基本放大电路详解
几种基本放大电路详解
259 0