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

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

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

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

相关推荐
ShineWinsu21 分钟前
对于数据结构:链式二叉树的超详细保姆级解析—中
数据结构·c++·算法·面试·二叉树·校招·递归
沐怡旸1 小时前
【穿越Effective C++】条款20:宁以pass-by-reference-to-const替换pass-by-value——参数传递的效率与语义
c++·面试
soda_yo1 小时前
搞不懂作用域链?这篇文章让你一眼秒懂!
javascript·面试
沐怡旸1 小时前
【底层机制】Ashmem匿名共享内存:原理与应用深度解析
android·面试
一名机电研究生4 小时前
华为、阿里巴巴、字节跳动 100+ Linux面试问题总结(一)
linux·华为·面试
张彦峰ZYF8 小时前
高并发优惠权益聚合接口的优雅实现(含超时控制 + 来源标识 + Fallback 降级)
java·后端·面试
Sailing8 小时前
🔥 React 高频 useEffect 导致页面崩溃的真实案例:从根因排查到彻底优化
前端·react.js·面试
byte轻骑兵8 小时前
【安全函数】C语言安全字符串函数详解:告别缓冲区溢出的噩梦
c语言·安全·面试
程序员爱钓鱼10 小时前
Python 实战:如何读取多格式 Excel 并实现跨表匹配合并(支持 XLS / XLSX)
后端·python·面试
许强0xq12 小时前
Q6: 如何计算以太坊交易的美元成本?
面试·web3·区块链·智能合约·dapp