【智力题】钟表的时针、分针、秒针每天重合多少次?

面试的时候遇到一个很好玩的问题:钟表的时针、分针、秒针每天重合多少次?

于是,matlab启动!

我分成"指针跳变"、"指针连续",两个版本进行仿真:

版本一:指针跳变

matlab 复制代码
%% 解释钟表三指针重合问题
% 假设:
% 1. 钟表的刻度是一圈60格
% 2. 钟表指针都是跳变的
% 3. 秒针每秒跳一格、分针每分跳一格、时针每12分跳一格

clear;
clc;
close all;
% 定义变量
len = 24*60*60;% 所有的秒数
secs = zeros(1,len);% 秒针
mins = zeros(1,len);% 分针
hour = zeros(1,len);% 时针

% 秒针
for i = 0 : (len/60)-1
    secs((1:60)+i*60) = 0:59;
end

% 分针
tmp = 0;
for i = 0 : (len/60)-1
    mins((1:60)+i*60) = tmp.*ones(1,60);
    tmp = mod(tmp+1,60);
end

% 时针
tmp = 0;
for i = 0 : (len/60/12)-1
    hour((1:720)+i*720) = tmp.*ones(1,720);
    tmp = mod(tmp+1,60);
end

% 找出重合点
for i = 0:len-1
    if(secs(i+1) == mins(i+1) && secs(i+1)==hour(i+1))
%         fprintf("%d:\t ", i);
        fprintf("%d:%d:%d\n",floor(i/3600),mod(floor(i/60),60),mod(i,60));
    end
end

运行结果:

matlab 复制代码
0:0:0
1:5:5
2:10:10
3:16:16
4:21:21
5:27:27
6:32:32
7:38:38
8:43:43
9:49:49
10:54:54
11:59:59
12:0:0
13:5:5
14:10:10
15:16:16
16:21:21
17:27:27
18:32:32
19:38:38
20:43:43
21:49:49
22:54:54
23:59:59

版本二:指针连续

matlab 复制代码
%% 解释时钟指针重合问题
% 假设:
% 1. 指针都是连续转动的
% 2. 秒针每秒转360/60=6度,分针每分钟转360/60=6度,时针每小时转360/12=30度。
% 3. 角速度统一(单位:角度/s):秒针-6度/s,分针-0.1度/s,时针-(1/120)度/s
clear;
clc;
close all;

% 参数定义
t = 0:1:(24*60*60-1);       % 一天总时长
hour = mod(1/120.*t, 360);  % 时针
mins = mod(0.1.*t, 360);    % 分针
secs = mod(6.*t, 360);      % 秒针
len = length(t);

% 找出重合点
for i = 0:len-1
    if(secs(i+1) == mins(i+1) && secs(i+1)==hour(i+1))
        fprintf("%d:%d:%d\n",floor(i/3600),mod(floor(i/60),60),mod(i,60));
    end
end

运行结果:

matlab 复制代码
0:0:0
12:0:0

结论

  1. 若指针跳变,每小时都会重合一次,一天可以重合24次。
  2. 若指针连续转动,只有最开始的0时0分0秒、中午12点整,这两个时间会重合。

我也不知道对不对啊,不服来辩!

相关推荐
Neituijunsir2 小时前
2024.09.22 校招 实习 内推 面经
大数据·人工智能·算法·面试·自动驾驶·汽车·求职招聘
小飞猪Jay3 小时前
面试速通宝典——10
linux·服务器·c++·面试
猿java3 小时前
Cookie和Session的区别
java·后端·面试
数据分析螺丝钉4 小时前
力扣第240题“搜索二维矩阵 II”
经验分享·python·算法·leetcode·面试
无理 Java4 小时前
【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)
java·后端·spring·面试·mvc·框架·springmvc
鱼跃鹰飞5 小时前
Leecode热题100-295.数据流中的中位数
java·服务器·开发语言·前端·算法·leetcode·面试
TANGLONG2225 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
狐小粟同学6 小时前
链表面试编程题
数据结构·链表·面试
码农超哥同学8 小时前
Python知识点:如何使用EdgeX Foundry与Python进行边缘计算
开发语言·python·面试·编程·边缘计算
码农超哥同学8 小时前
Python知识点:如何使用OpenFaaS与Python进行无服务器边缘计算
python·面试·serverless·编程·边缘计算