题目描述
高桥买了个台钟。这个钟采用 $24$ 小时计时法,显示的时间为 $\overline{AB}:\overline{CD}$。
当且仅当 $0\leq \overline {AB}<24$ 且 $0\leq \overline {CD}<60$ 时我们称这个时间是合法的。
高桥决定将满足以下条件的时间叫做 “迷惑时间”:
如果把 $B$ 和 $C$ 交换,这个时间仍然是合法的。
比如说 $20:13$ 是“迷惑时间”,因为 $21:03$ 是合法的。
现在高桥的钟显示的时间是 $H:M$。请你求出离现在最近的“迷惑时间”(包括现在)。
样例
输入 #1
1 23
输出 #1
1 23
输入 #2
19 57
输出 #2
20 0
输入 #3
20 40
输出 #3
21 0
算法1
(暴力枚举)
直接暴力枚举每一个时间,判断是不是“迷惑时间”。
时间复杂度 $O(n)$
参考文献
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int h, m;
int a1, a2, b1, b2;
bool check(int H, int M)
{
if ( H >= 0 && H < 24 && M >= 0 && M < 60 )
{
return 1;
}else
{
return 0;
}
}
int main()
{
cin >> h >> m;
while ( h <= 23 && m <= 59 )
{
int h1 = h / 10 * 10 + m / 10;
int m1 = h % 10 * 10 + m % 10;
if ( check(h1, m1) )
{
break;
}
m ++;
if ( m >= 60 )
{
h ++;
m -= 60;
}
if ( h >= 24 )
{
h -= 24;
}
}
cout << h << ' ' << m;
return 0;
}