1. 程式人生 > >PAT B1026. 程式執行時間

PAT B1026. 程式執行時間

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

輸出格式:

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

輸入樣例:
123 4577973
輸出樣例:
12:42:59

題意:給兩個數,兩數之差除100(四捨五入)化為秒後,變為時分秒格式;

思路:其實與B1022 D進位制的A+B題目相似

      需要掌握基本語言程式設計,不同進位制求法

    1、先由時鐘打點數轉化為秒time;

    2、由秒轉化為時hour分time秒sec;

    3、按規定格式hh:mm:ss輸出

**記住%02d這個格式

#include <cstdio>

int main(){
	long long C1,C2,time;
	int hour,min,sec;
	
	scanf("%lld%lld",&C1,&C2);
	
	//求共花費多少秒 
	time = (C2-C1)/100;
	if((C2-C1)%100 > 40) time += 1;//不足一秒四捨五入 
	
	//化秒為時分秒;老辦法取尾數 
	sec = time % 60;
	time = time / 60;
	min = time % 60;
	time = time / 60;
	hour = time;//注意hour不需要取餘,剩下都是hour不需要進位 
	
	printf("%02d:%02d:%02d",hour,min,sec);//這裡注意格式hh:mm:ss 
	
	return 0;
	
}