Python基础练习 1026 程序运行时间 (15 分)

190 阅读2分钟

Python基础练习 1026 程序运行时间 (15 分)

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

注:四舍五入的函数编写\
注:新知识 string.rjust(width, str) / string.ljust(width, str) / string.zfill(str)

问题描述

  要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 (C2-C1) 就是 f 运行所消耗的时钟打点数,再除以常数 CLK_TCK,就得到了以秒为单位的运行时间。

  这里不妨简单假设常数 CLK_TCK 为 100。现给定被测函数前后两次获得的时钟打点数,请你给出被测函数运行的时间。

输入输出

  • 输入格式

  输入在一行中顺序给出 2 个整数 C1 和 C2。注意两次获得的时钟打点数肯定不相同,即 C1 < C2,并且取值在 [0,10​000000 ]。

  • 输出格式

  在一行中输出被测函数运行的时间。运行时间必须按照 hh:mm:ss(即2位的 时:分:秒)格式输出;不足 1 秒的时间四舍五入到秒。

  • 样例输入

123 4577973

  • 样例输出

12:42:59

Python版本 代码如下

方法1:

##四舍五入,round函数只能完成四舍六入
def check(num):
    num = str(num)
    i = num.find(".")   ##这道题,真的很坑,折腾的自己心态爆炸了
    if int(num[i+1])>=5:   ##一直卡在第二个测试点,测试四舍五入的函数那里
        return int(num[:i])+1  ##后来发现,这个if后面跟着的判断条件如果是if int(num[i+1])<5…… else…… 第二个测试的就是错误的
    else:                          ##把条件int(num[i+1])<5改成int(num[i+1])>=5就通过了,不知道有没有大神讲讲
        return int(num[:i])

n,m = map(int, input().split())
a = (m-n)/100

hour = int(a//3600)
minute = int((a-3600*hour)//60)
second = check(a-hour*3600-minute*60)

hour = str(hour).zfill(2)  ## zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0
minute = str(minute).zfill(2)  ##与string.rjust(width,'0')输出结果一致 
second = str(second).zfill(2)  ##string.rjust(width,'0')方法返回一个原字符串左对齐,并使用'0'填充至指定长度的新字符串
print(hour+":"+minute+":"+second)

参考学习:blog.csdn.net/qq_40728667…

方法2:

start,end=map(int,input().split())
time = (end-start)/100

hh = int(time//3600)
mm = int(time%3600//60)
ss = time-hh*3600-mm*60
ss = int(ss+0.5) #四舍五入

hh = str(hh).zfill(2)
mm = str(mm).zfill(2)
ss = str(ss).zfill(2)

print("%s:%s:%s"%(hh, mm, ss))