PAT乙级.1026. 程序运行时间(15)
来源:互联网 发布:c#二维数组初始化 编辑:程序博客网 时间:2024/05/29 04:02
1026. 程序运行时间(15)
题目:
要获得一个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和C1。注意两次获得的时钟打点数肯定不相同,即C1 < C2,并且取值在[0, 10^7]。
输出格式:
在一行中输出被测函数运行的时间。运行时间必须按照“hh:mm:ss”(即2位的“时:分:秒”)格式输出;不足1秒的时间四舍五入到秒。
输入样例:
123 4577973
输出样例:
12:42:59
PAT链接
思路:
1.求(C2-C1)/100并四舍五入
2.获得hh,mm,ss并输出
ss = Dif % 60; mm = (Dif) / 60 % 60; hh = Dif / 3600;
代码:
/** * @tag PAT_B_1026 * @authors R11happy (xushuai100@126.com) * @date 2016-07-18 19:28:16-19:43 * @version 1.0 * @Language C++ * @Ranking 80/5481 */#include <cstdio>#include <cstring>#include <cmath>int main(){ int C1, C2; int hh, mm, ss; scanf("%d%d", &C1, &C2); double ans = (C2 - C1) / 100.0; //注意要用100.0获得double类型 int Dif = (C2 - C1) / 100; /*进行四舍五入*/ if (ans - Dif >= 0.5) Dif++; ss = Dif % 60; mm = (Dif) / 60 % 60; hh = Dif / 3600; printf("%02d:%02d:%02d\n", hh, mm, ss); //输出注意两位补0 return 0;}
收获:
1.四舍五入可以用round函数,但是由于涉及浮点数会使写法变得复杂,因此不妨直接通过C2-C1的后两位来判断是四舍还是五入
这部分可改进成如下代码:
/*四舍五入部分*/if(ans % 100 >= 50) ans = ans /100 +1;else ans = ans / 100;
2.时间的输出要注意高位自动补零
printf("%02d:%02d:%02d\n", hh, mm, ss); //输出注意两位补0
0 0
- 1026. 程序运行时间(15) PAT 乙级
- PAT-乙级-1026. 程序运行时间(15)
- PAT乙级.1026. 程序运行时间(15)
- PAT 乙级 1026. 程序运行时间(15)
- PAT乙级 1026. 程序运行时间(15)
- PAT乙级1026. 程序运行时间(15)
- [PAT乙级]1026. 程序运行时间(15)
- pat 乙级 1026. 程序运行时间(15)
- PAT乙级1026. 程序运行时间(15)
- PAT 乙级 1026. 程序运行时间
- PAT(乙级)1026. 程序运行时间
- [PAT-乙级]1026.程序运行时间
- PAT乙级题1026.程序运行时间
- PAT乙级 程序运行时间(15)
- PAT乙级—1026. 程序运行时间(15)-native
- 1026. 程序运行时间(15)-PAT乙级真题
- PAT 乙级 1026. 程序运行时间(15) Java版
- PAT 乙级 1026.程序运行时间(15)
- 深度学习实战——caffe windows 下训练自己的网络模型
- 【Android】Sensor框架Framework层解读
- Spark机器学习
- 指针与数组(二)——字符串认知
- Python爬虫常用模块,BeautifulSoup笔记
- PAT乙级.1026. 程序运行时间(15)
- InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
- Java冒泡排序算法
- vim
- WebRTC Data Channels RFC
- Leetcode 100 : same Tree
- HDU-4339 Query(树状数组+二分)
- Linkedin工程师是如何优化他们的Java代码的
- NYOJ33--蛇形填数