Acwing 游戏时间 C++ python

 距离蓝桥杯还有45天

题目链接

问题描述:Acwing 游戏时间 C++ python_第1张图片

根据y总的思路,通过转化为分钟计算,避免了复杂的多个判断语句。

首先声明最长时间不超过24h

只需考虑两种情况:比如开始时间是(7:20) 结束时间是(8:30)

开始时间等效于7*60+20=(第)440分钟,结束时间等效于8*60+30=(第)510分钟

经过了510-440=70分钟 即1 hour 10min

但是,经过了的分钟数要大于0,前提是结束时间的h大于开始时间的h

如果开始时间是(7:20) ,那么如果结束时间在(7:20)到(24:00)的范围内,都是可以这么计算的。

但如果结束时间落在(0:00)到(7:20)那么意味着开始时间从(7:20)经过了24:00,再从0:00到达结束时间,所以真正经过的分钟数

为(24*60-starttime对应的分钟数)+endtime对应的分钟数

综上:经过的时间=endtime-starttime(对应的分钟数) if endtime-starttime>=0

经过的时间=1440-starttime+endtime(对应的分钟数) if endtiime-starttime<0

C++ 

#include 
#include 

using namespace std;

int main(){
    int a,b,c,d,starttime,endtime;
    cin>>a>>b>>c>>d;
    starttime=a*60+b;
    endtime=c*60+d;
    if (starttime

Acwing 游戏时间 C++ python_第2张图片python:小郑三行解决(不建议这么写,为了突显短而短没必要,不好理解反而)

a,b,c,d=map(int,input().strip().split())

start,end=a*60+b,c*60+d

print("O JOGO DUROU %d HORA(S) E %d MINUTO(S)"%((end-start)/60,(end-start)%60)) if start

 推荐写法:一步步写清晰了就是好代码

a,b,c,d=map(int,input().strip().split())

start=a*60+b
end=c*60+d

if start

我是小郑 正在奔赴热爱奔赴山海!

你可能感兴趣的:(Python,笔记,C++,c++,蓝桥杯,算法,python)