传送门:点击打开链接
Karen is getting ready for a new school day!
It is currently hh:mm, given in a 24-hour format. As you know, Karen loves palindromes, and she believes that it is good luck to wake up when the time is a palindrome.
What is the minimum number of minutes she should sleep, such that, when she wakes up, the time is a palindrome?
Remember that a palindrome is a string that reads the same forwards and backwards. For instance, 05:39 is not a palindrome, because05:39 backwards is 93:50. On the other hand, 05:50 is a palindrome, because 05:50 backwards is 05:50.
The first and only line of input contains a single string in the format hh:mm (00 ≤ hh ≤ 23, 00 ≤ mm ≤ 59).
Output a single integer on a line by itself, the minimum number of minutes she should sleep, such that, when she wakes up, the time is a palindrome.
05:39
11
13:31
0
23:59
1
In the first test case, the minimum number of minutes Karen should sleep for is 11. She can wake up at 05:50, when the time is a palindrome.
In the second test case, Karen can wake up immediately, as the current time, 13:31, is already a palindrome.
In the third test case, the minimum number of minutes Karen should sleep for is 1 minute. She can wake up at 00:00, when the time is a palindrome.
题意是给你一个时间,问多少分钟后,这个时间能成为回文时间。由于时间较少,所以可以直接枚举。
代码实现:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char a[15];
int i;
while(cin>>a)
{
int h=(a[0]-'0')*10+(a[1]-'0');
int m=(a[1]-'0')*10+(a[0]-'0');
int mm=(a[3]-'0')*10+(a[4]-'0');
if(mm==m)
{
cout<<"0"<<endl;
continue;
}
for(i=0;;i++)
{
if(mm==m)
break;
mm++;
if(mm==60)
{
h++;
h=h%24;
mm=0;
m=(h%10)*10+h/10;
}
}
cout<<i<<endl;
}
return 0;
}