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

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

于是,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点整,这两个时间会重合。

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

相关推荐
Scabbards_2 小时前
面试Leetcode - Heap 堆
java·leetcode·面试
黄敬峰2 小时前
🐳 Docker 从入门到实战:一次搞定容器化 + Nginx 反向代理
面试
程序员清风2 小时前
专业再升级!程序员专属显示器明基RD280UG上手实测!
java·后端·面试
six_3 小时前
C# 上位机(持续更新中)
前端·面试·c#
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 的序列容器
java·c++·面试
东华万里6 小时前
第40篇C++核心基础与工程实践:从底层逻辑到避坑指南
开发语言·c++·面试·大学生专区
wangjialelele9 小时前
动态规划DP经典题型总结(Java、C++):路径、子数组、子序列、背包问题详解
java·c++·算法·面试·动态规划·代理模式
一只叫煤球的猫10 小时前
Spring AI 2.0 源码解析(一):一次 ChatClient 调用到底经历了什么?
后端·面试·ai编程
子林super10 小时前
使用dockerfile打包ng镜像演示
面试
王中阳Go10 小时前
苏神百万年薪简历翻车:一个包装争议,给后端同学的 5 个工程视角警示
面试