题解 | #时间(time)#

时间(time)

https://ac.nowcoder.com/acm/problem/16588

根据题意模拟即可,注意以下几点:

  • int 型存储,高位用 x / 10 取出来,低位用 x % 10 取出来。

  • 判断回文时第一个数的高位和第二个数的低位相同,反之亦然。

  • 向后枚举时碰到 24:0024:00 就加一个 if 语句强制钦定成 00:0000:00 即可。

#include<cstdio>
int init(){
	char c = getchar();
	int x = 0, f = 1;
	for (; c < '0' || c > '9'; c = getchar())
		if (c == '-') f = -1;
	for (; c >= '0' && c <= '9'; c = getchar())
		x = (x << 1) + (x << 3) + (c ^ 48);
	return x * f;
}
void print(int x){
	if (x < 0) x = -x, putchar('-');
	if (x > 9) print(x / 10);
	putchar(x % 10 + '0');
}
bool check(int a, int b){
    return (a / 10 == b % 10) && (a % 10 == b / 10);
}
int main(){
	int a = init(), b = init();
    for (int x = a, y = b; ; ) {
        if (y == 0) y = 59, --x;
        else --y;
        if (check(x, y)) {
            print(x), putchar(':'), print(y), putchar('\n');
            break;
        }
    }
    for (int x = a, y = b; ; ) {
        if (y == 59) y = 0, ++x;
        else ++y;
        if (x == 24 && y == 0) x = 0;
        if (check(x, y)) {
            print(x), putchar(':'), print(y), putchar('\n');
            break;
        }
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
07-19 13:28
长沙学院 Java
程序员小白条:你有面试就有希望,没面试自然就没希望,到时候就知道了,你问别人也没啥用处的
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务