首頁 web前端 html教學 【TopCoder SRM 157 DIV 1】 Salary 解题报告_html/css_WEB-ITnose

【TopCoder SRM 157 DIV 1】 Salary 解题报告_html/css_WEB-ITnose

Jun 24, 2016 am 11:59 AM
div 報告 解題

本来想把原题给贴过来的,后来看到人家有版权保护,在网上搜了一下,好像也没有人在博客中贴过原题,为避免麻烦,就不copy人家原题了。

【题目大意】

公司按照每小时 wage 元给员工发工资,员工上班打卡记录一个时间,下班记录一个时间,时间格式为 "hh:mm:ss"。其中,18:00:00 到 23:59:59 和 00:00:00 到 05:59:59 之间算加班时间,工资为1.5倍。计算工资时,分钟和秒都换算成小时来计算,最终的工资取整数,舍弃后面的小数。

【函数格式】

int howMuch(vector <string> arrival, vector <string> departure, int wage)</string></string>
登入後複製

【注意】

arrival和departure元素个数一样,且arrival[0]

【解题思路】

思路不难,只是时间区间判断比较麻烦,有两个时间关键点06:00:00和18:00:00。

【我的代码】

class Salary {public:	int compareTime(int hh1, int mm1, int ss1, int hh2, int mm2, int ss2) {		if (hh1 > hh2 || (hh1 == hh2 && mm1 > mm2) || (hh1 == hh2 && mm1 == mm2 && ss1 > ss2)) {			return 1;		}		if (hh1 = ss1) {			time += (ss2 - ss1) / 3600.0;		} else {			time += (ss2 + 60 - ss1) / 3600.0;			mm2 -= 1;		}		if (mm2 >= mm1) {			time += (mm2 - mm1) / 60.0;		} else {			time += (mm2 + 60 - mm1) / 60.0;			hh2 -= 1;		}		time += hh2 - hh1;		return time;	}	int howMuch(vector <string> arrival, vector <string> departure, int wage) {		int beginHour, endHour, beginMinute, endMinute, beginSecond, endSecond;		stringstream ss;		double total = 0;		for (int i = 0; i > beginHour;			ss.clear();			ss > beginMinute;			ss.clear();			ss > beginSecond;			string time2 = departure[i];			ss.clear();			ss > endHour;			ss.clear();			ss > endMinute;			ss.clear();			ss > endSecond;			if (compareTime(beginHour, beginMinute, beginSecond, 6, 0, 0) = 0						&& compareTime(endHour, endMinute, endSecond, 18, 0, 0) = 0) {					total += duringTime(beginHour, beginMinute, beginSecond, 6, 0, 0) * wage * 1.5;					total += duringTime(6, 0, 0, 18, 0, 0) * wage;					total += duringTime(18, 0, 0, endHour, endMinute, endSecond) * wage * 1.5;				}			} else if (compareTime(beginHour, beginMinute, beginSecond, 18, 0, 0) = 0) {					total += duringTime(beginHour, beginMinute, beginSecond, 18, 0, 0) * wage;					total += duringTime(18, 0, 0, endHour, endMinute, endSecond) * wage * 1.5;				}			} else {				total += duringTime(beginHour, beginMinute, beginSecond, endHour, endMinute, endSecond) * wage * 1.5;			}		}		return (int)total;	}};</string></string>
登入後複製

首先是字符串转换成时分秒整数值。两个自定义函数功能分别为:比较两个时间点先后,主要是和两个关键时间点06:00:00和18:00:00比较;计算两个时间点之间的小时数。

然后一大段逻辑判断,判断员工工作时间是不是在00:00:00和06:00:00之间、06:00:00和18:00:00之间、18:00:00和00:00:00之间,还是说跨时间段。

由于基础不好,代码写得比较?嗦,欢迎大家改进。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

css怎麼實作div缺一個角 css怎麼實作div缺一個角 Jan 30, 2023 am 09:23 AM

css實作div缺少一個角的方法:1、建立一個HTML範例文件,並定義一個div;2、給div設定寬高背景色;3、給需要刪除一角的div增加一個偽類,將偽類設定成跟背景色一樣的顏色,然後旋轉45度,再定位到需要去除的那個角落即可。

基於 ChatGPT API 的劃詞翻譯瀏覽器腳本實現 基於 ChatGPT API 的劃詞翻譯瀏覽器腳本實現 May 01, 2023 pm 03:28 PM

前言最近GitHub上有個基於ChatGPTAPI的瀏覽器腳本,openai-translator,短時間內star衝到了12k,功能上除了支援翻譯外,還支援潤飾和總結功能,除了瀏覽器插件外,還使用了tauri打包了一個桌面客戶端,那拋開tauri是使用rust部分,那瀏覽器部分實作還是比較簡單的,今天我們就來手動實作一下。 openAI提供的介面例如我們可以複製以下程式碼,在瀏覽器控制台中發起請求,就可以完成翻譯//範例constOPENAI_API_KEY="s

iframe和div有什麼不同 iframe和div有什麼不同 Aug 28, 2023 am 11:46 AM

iframe和div的不同是iframe主要用於引入外部內容,可以載入其他網站的內容或將一個網頁分割成多個區域,每個區域有自己的獨立的瀏覽上下文,而div主要用於分割和組織內容的區塊,用於佈局和样式控制。

div盒模型是什麼 div盒模型是什麼 Oct 09, 2023 pm 05:15 PM

div盒模型是用於網頁佈局的模型,它將網頁中的元素視為一個個矩形的盒子,這個模型包含了四個部分:內容區域、內邊距、邊框和外邊距。 div盒模型的好處是可以輕鬆控制網頁佈局和元素之間的間距,透過調整內容區域、內邊距、邊框和外邊距的大小,可以實現各種不同的佈局效果,盒模型也提供了一些屬性和方法,可以透過CSS和JavaScript來動態地改變盒子的樣式和行為。

div與span的差別有哪些 div與span的差別有哪些 Nov 02, 2023 pm 02:29 PM

差異有:1、div是一個區塊級元素,span是一個行內元素;2、div會自動佔據一行,span則不會自動換行;3、div用於包裹比較大的結構和佈局,span用於包裹文字或其他行內元素;4、div可以包含其他區塊級元素和行內元素,span可以包含其他行內元素。

一文教你如何用ChatGPT快速寫一篇報告 一文教你如何用ChatGPT快速寫一篇報告 May 14, 2023 pm 04:04 PM

本文將分享訓練ChatGPT(最新GPT-4模型版本)並產生報告的完整流程,並就ChatGPT使用過程中存在哪些常見的問題,如何使用ChatGPT來最大化提升學習、工作效率等問題進行探討。以下是AI安全報告產生全過程。基礎架構選題優質的選題能夠幫助學術研究者快速確定報告的切入點,引導讀者捕捉報告的主旨,使整個報告呈現更清晰的架構和邏輯。透過向ChatGPT介紹報告的背景或提供關鍵字、概述,ChatGPT能夠在幾秒鐘內產生選題,供研究者參考。我們在提問時,可要求ChatGPT同時產生多個選題,這在幫

MySQL和Oracle:對於分析和報告功能的支援對比 MySQL和Oracle:對於分析和報告功能的支援對比 Jul 12, 2023 pm 07:37 PM

MySQL和Oracle:對於分析和報告功能的支援對比在現代資料驅動的世界中,隨著企業資料的不斷增長,對於資料分析和報告功能的需求也越來越大。作為兩個最受歡迎的關係型資料庫管理系統(RDBMS),MySQL和Oracle在這方面具有很高的支援效能。本文將對它們在數據分析和報告功能的支援方面進行比較,並透過程式碼範例展示其差異。首先,我們來看看MySQL在資料分

jQuery技巧:掌握在div中新增標籤的方法 jQuery技巧:掌握在div中新增標籤的方法 Feb 23, 2024 pm 01:51 PM

標題:jQuery技巧:掌握在div中新增標籤的方法在網頁開發中,經常會遇到需要動態新增標籤到頁面中的情況。使用jQuery可以方便地操作DOM元素,實現快速的標籤添加功能。本文將介紹如何使用jQuery在div中新增標籤的方法,並附上具體的程式碼範例。 1.準備工作在使用jQuery之前,需要在頁面中引入jQuery庫,可以透過CDN連結引入,也可以下載到本

See all articles