关于#c++#的问题,请各位专家解答!


关于#c++#的问题,请各位专家解答!
最“笨的办法”就是在给出时间上起零,每过一分钟检查是否“回文时间”,是则输出累计经过的分钟数。
我仅会点点儿python,用python代码来走走“算法逻辑”
#!/sur/bin/nve python
# coding: utf-8
def loopTime(inTime):
''' 第一个回文时间 '''
if inTime == inTime[::-1]:
return 0 # 输入时间是回文时间,返回0。
h, m = map(int, inTime.split(':')) # 拆分时、分并转整。
if h > 23 or m > 59:
print(f"\n{' 输入时间错误!':~^34}")
return 0, 0
passS = 0 # 佳佳最少睡的分钟数初值。
while True: # 循环查找回文时间字符串。
m += 1 # 分钟数自增1。
passS += 1 #
h = h+1 if m >= 60 else h # 分钟满60向小时进位。
m = m%60 # 分钟数模60。
time_str = f"{h%24:0>2}:{m%60:0>2}" # 格式化当前时间字符串。
time_str = '24:00' if time_str == '00:00' else time_str # 规定0时为24:00,避免00:00表示的0时天生回文。
if time_str == time_str[::-1]: # 判定回文时间,是则结束循环返回当前回文时间字符串及分钟数总值。
return time_str, passS
if __name__ == '__main__':
inTime = input('\n开始时间(如21:08):').strip()
looptime, mins = loopTime(inTime)
if looptime != mins:
print(f"\n\n佳佳最少要睡{mins}分钟,才可以到{looptime}。\n")


