【问题描述】
松雅喜欢睡懒觉,有一天,她必须在 hh:mm 的时间起来去跟她的合伙人讨论新开旅馆的事情。然而,她讨厌醒来,她希望在一个幸运时间设置一个闹钟以减少痛苦,这样她可以反复按“小睡一会儿”按钮,该按钮每次可延迟 x 分钟,直到 hh:mm 这个时间醒来,她想知道最少需要按多少次这个按钮。
如果一个时间的数字中包含'7',则她认为是幸运时间,例如:13:07和17:20是幸运的,而00:48和21:34不是。
注意,设置闹钟的时间与醒来的时间不一定在同一天,输入保证对每个醒来时间都有一个幸运时间。
正常地,可以找到一个最小的非负整数 y 使得在时间 hh:mm 之前的 y*x 分钟是一个幸运时间,即包含数字'7'。
时间采用24小时制,因此在23:59之后是00:00。
【输入形式】
输入的第一行包含一个正整数 x (1 ≤ x ≤ 60)。
第二行包含两个整数,分别代表小时与分钟( hh:mm )。
【输出形式】
输出一行一个整数,表示松雅需要按“小睡一会儿”按钮的最小次数。
【样例输入1】
3 11 23
【样例输出1】
2
【样例输入2】
5 1 7
【样例输出2】
0
【思路分析】本题有两个关键:1.一个数字含7该如何判断?——取模,余数是7便含有7。2.如果分钟数小于0后小时该怎么变?(h-1+24)%24。
#include <iostream>
using namespace std;
int main(){
int x;
cin>>x;
int h,m;
cin>>h>>m;
int flag=0;
while(1){
if(h%10==7||m%10==7){
break;
}
else{
m-=x;
}
if(m<0){
m+=60;
h=(h-1+24)%24;
}
flag++;
}
cout<<flag;
return 0;
}