你有一个电子钟,可以显示 0:00
到 23:59
之间的所有时间,以数字的形式显示。其中小时是 0
到 23
(0 时会显示一个 0,而 1 到 9 时不会显示前导 0),分钟是 00
到 59
(0 到 9 分都会显示前导 0)。任何时刻,电子钟都会显示三个或者四个 00 到 99 的数字。如果在某时刻,这些数字依次组成了一个等差数列,则这个时刻被称为“好时刻”。
你感觉很无聊,从 0:00
时刻开始盯着这个电子钟。一共盯了 xx 分钟。请问整个过程中,"好时刻"来临了多少次(算上开头和结尾)?
输入格式
一个不超过 109109 的非负整数。
输出格式
请输出"好时刻"来临了多少次?
输入输出样例
输入 #1
120
输出 #1
10
输入 #2
2880
输出 #2
79
输入 #3
987654321
输出 #3
26748975
说明/提示
【样例解释】
你观察了 2 个小时,其中这些“好时刻”来临了:
0:00
0:12
0:24
0:36
0:48
1:11
1:23
1:35
1:47
1:59
一共是 10 个。
代码
#include<iostream>
using namespace std;
int main(){
int t,a,b,sum;
cin>>t;
a=t/60%24;
b=t%60;
sum=t/60/24*39;
if(a==0){
if(b<12&&b>=0)sum+=1;
else if(b<24)sum+=2;
else if(b<36)sum+=3;
else if(b<48)sum+=4;
else sum+=5;
}
else if(a==1){
if(b<11)sum+=5;
else if(b<23&&b>=11)sum+=6;
else if(b<35)sum+=7;
else if(b<47)sum+=8;
else if(b<59)sum+=9;
else sum+=10;
}
else if(a==2){
if(b<10)sum+=10;
else if(b<22&&b>=10)sum+=11;
else if(b<34)sum+=12;
else if(b<46)sum+=13;
else if(b<58)sum+=14;
else sum+=15;
}
else if(a==3){
if(b<21)sum+=15;
else if(b<33&&b>=21)sum+=16;
else if(b<45)sum+=17;
else if(b<57)sum+=18;
else sum+=19;
}
else if(a==4){
if(b<20)sum+=19;
else if(b<32&&b>=20)sum+=20;
else if(b<44)sum+=21;
else if(b<56)sum+=22;
else sum+=23;
}
else if(a==5){
if(b<31)sum+=23;
else if(b<43&&b>=31)sum+=24;
else if(b<55)sum+=25;
else sum+=26;
}
else if(a==6){
if(b<30)sum+=26;
else if(b<42&&b>=30)sum+=27;
else if(b<54)sum+=28;
else sum+=29;
}
else if(a==7){
if(b<41)sum+=29;
else if(b<53&&b>=41)sum+=30;
else sum+=31;
}
else if(a==8){
if(b<40)sum+=31;
else if(b<52&&b>=40)sum+=32;
else sum+=33;
}
else if(a==9){
if(b<51)sum+=33;
else sum+=34;
}
else if(a==10){
sum+=34;
}
else if(a==11){
if(b<11)sum+=34;
else sum+=35;
}
else if(a==12){
if(b<34)sum+=35;
else sum+=36;
}
else if(a==13){
if(b<57)sum+=36;
else sum+=37;
}
else if(a>=14&&a<21){
sum+=37;
}
else if(a==22){
if(b<22)sum+=37;
else sum+=38;
}
else if(a==23){
if(b<45)sum+=38;
else sum+=39;
}
cout<<sum;
return 0;
}