你有一个电子钟,可以显示 0:00 到 23:59 之间的所有时间,以数字的形式显示。其中小时是 0 到 23(0 时会显示一个 0,而 1 到 9 时不会显示前导 0),分钟是 00 到 59(0 到 9 分都会显示前导 0)。任何时刻,电子钟都会显示三个或者四个 00 到 99 的数字。如果在某时刻,这些数字依次组成了一个等差数列,则这个时刻被称为“好时刻”。 你感觉很无聊,从 0:00 时刻开始盯着这个电子钟。一共盯了 xx 分钟。请问整个过程中,"好时刻"来临了多少次(算上开头和结尾)?
#include <iostream>
using namespace std;
int main ()
{
int n;cin>>n;
int days=n/1440;n%=1440;
int res=days*39;// 39需提前算出,利用下方双循环得出
for(int h=0;h<24;h++)
{
- for(int m=0;m<60;m++)//; 注意这里千万不要加分号,它让我找了半天(是我太菜了)
{
n--;
int a=h/10,b=h%10,c=m/10,d=m%10;
if(h<=9&&c-b==d-c) res++;
if(h>=10&&b-a==c-b&&c-b==d-c) res++;
if(n<0) break;
}
}
cout<<res<<endl;
return 0;
}