# 幸运时间 ## 题目描述 一个 hh:mm 格式的时间,使用24小时制(即23:59+00:01 = 00:00)。 定义“幸运时间”为 hh:mm 中包含数字7的时间,例如17:01/00:17等。 表上当前的时间点为hh:mm,如果hh:mm不是幸运时间,就把表往前调x分钟, 直到调至幸运时间为止,求最少需要调多少次。 ## 输入格式 第一行1个整数x 第二行2个整数hh,mm ## 输出格式 输出一个整数,代表答案。 若调多少次都办不到,输出“No Solution”。 ## 样例 #1 ### 样例输入 #1 ``` 3 11 23 ``` ### 样例输出 #1 ``` 2 ``` ## 样例 #2 ### 样例输入 #2 ``` 15 01 06 ``` ### 样例输出 #2 ``` 29 ``` ## 样例 #3 ### 样例输入 #3 ``` 888 02 30 ``` ### 样例输出 #3 ``` 11 ``` ## 提示 1 <= x <= 1e9, 00 <= hh <= 23, 00 <= mm <= 59请用c++解决
时间: 2023-08-16 13:11:16 浏览: 276
以下是使用C++解决这个问题的示例代码:
```cpp
#include <iostream>
bool isLuckyTime(int hh, int mm) {
if (hh % 10 == 7 || hh / 10 == 7 || mm % 10 == 7 || mm / 10 == 7) {
return true;
}
return false;
}
int main() {
int x, hh, mm;
std::cin >> x >> hh >> mm;
int count = 0;
while (!isLuckyTime(hh, mm)) {
mm -= x;
if (mm < 0) {
mm += 60;
hh = (hh - 1 + 24) % 24;
}
count++;
// 如果调整次数超过了24 * 60次,无法找到幸运时间
if (count > 24 * 60) {
std::cout << "No Solution" << std::endl;
return 0;
}
}
std::cout << count << std::endl;
return 0;
}
```
请注意,这只是一个示例解决方案,可能还需要根据实际情况进行调整。希望对您有帮助!
阅读全文