日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网_PAT乙级_1016程序运行时间(15)

發布時間:2024/2/28 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网_PAT乙级_1016程序运行时间(15) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

心得

格式化輸出的語法是這樣的:printf("%02d:%02d:%02d", hour, min, sec);
輸出效果舉個例子:00:04:59,不足兩位的情況下補0
不知道cout如何也能實現這樣輸出?

題目描述

要獲得一個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, 107]

輸出描述:
在一行中輸出被測函數運行的時間。運行時間必須按照“hh:mm:ss”(即2位的“時:分:秒”)格式輸出;不足1秒的時間四舍五入到秒。

輸入例子:
123 4577973

輸出例子:
12:42:59

別人的代碼

原來可以這么簡單

#include<bits/stdc++.h> int main(){int f,s;scanf("%d%d",&f,&s);int t=floor((s-f)/100.0+0.5);printf("%02d:%02d:%02d\n",t/3600,t%3600/60,t%60);return 0; }

我的代碼

雖然一次通過,但是…太復雜了

#include<iostream> #define CLK_TCK 100 using namespace std; int main() {double c1, c2;double dif;long int totalSec;cin >> c1 >> c2;dif = (c2 - c1) / CLK_TCK;totalSec = (long int)(dif + 0.5);//四舍五入int hour;int min;int sec;int t;cout.width(2);if (totalSec >= 60 * 60){hour = totalSec / (60 * 60);min = totalSec - hour * 60 * 60;t = min;min = min / 60;sec = t - 60 * min;printf("%02d:%02d:%02d", hour, min, sec);}else if (totalSec >= 60){min = totalSec / 60;sec = totalSec - min * 60;printf("00:%02d:%02d", min, sec);}else{printf("00:00:%02d", totalSec);}system("pause"); }

總結

以上是生活随笔為你收集整理的牛客网_PAT乙级_1016程序运行时间(15)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。