亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java 實現計費算法

java 實現計費算法

哆啦的時光機 2019-02-19 15:59:42
如圖所示,得到停車的費用,不考慮節假日,每天每秒都收費。注意點:收費時段是24小時,白天結束時間21點一定是挨著夜間開始時間21點的其中變量是 白天開始時間,白天結束時間,夜間開始時間,夜間結束時間,白天計費標準N元/半小時,夜間按次收費N元/次超過1毫秒都收費,無免費時間例如: 某車從早上7點停到第二天9點,停車費用: 4 + (21-8)*8 + 4 + (9-8)*8本人算法薄弱,只想到遞歸 8-21-8-21 看停車結束時間如果大于下一個結束點(如果開始是8 下個結束點是 21) 則結束時間取下一個結束點(21),計算其范圍內的費用,遞歸下去,直到停車結束時間小于小一個結束點,取結束時間,算出費用,停止遞歸。希望大家能給點意見,不盡感激。
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

所有將 開始時間 和 結束時間 做比較的操作都需要考慮日期,不能只考慮小時時間。比如第二天的任何時間要晚于前一天的任何時間。

第2步的目的是規范化開始時間,方便后面的計算。

這里計算一整天(8點~第2天8點)的費用應以108來計算,而不是112:(21-8)*8+4=108,因為夜間21點到第2天8點只能算一次停車,因此費用是4元。


舉幾個例子吧,就當是順便測試一下算法了:

  1. 開始時間=5點,結束時間=7點(同一天):

     (1) total=0
     (2) 因為開始時間在8點前,因此total=4,開始時間設置為8點整
     (3) 此時結束時間比開始時間早,因此直接返回total=4
  2. 開始時間=22點,結束時間為第二天8點整:

     (1) total=0
     (2) 開始時間在21點后,因此total=4,然后開始時間=第二天8點
     (3) 此時結束時間與開始時間相等,因此直接返回total=4
  3. 開始時間=7點,結束時間為第二天9點(你的例子):

     (1) total=0
     (2) total=4,開始時間設置為8點
     (3) 跳過
     (4) 整數天數為1天,total=4+108=112,開始時間變為了第2天8點
     (5) 結束時間9點,total=112+(9*2-16)*4=112+8=120
  4. 開始時間=7點,結束時間為第二天22點:

     (1) total=0
     (2) total=4,開始時間設置為8點
     (3) 跳過
     (4) 整數天數為1天,total=4+108=112,開始時間變為了第2天8點
     (5) 結束時間大于21點,total=112+4+(21-8)*8=220


查看完整回答
反對 回復 2019-02-19
  • 2 回答
  • 0 關注
  • 1251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號