2015-10-15 141 views
-1

我是新來的。請幫助我。 如果我使用動態金額,我必須計算我可以購買多少時間,所以 例如:我可以輸入5美元或10美元等;JavaScript,計算動態金額

我有一些表:

15minutes -> cost 50 cents 
1hour -> cost 3USD 
2hours -> cost 6,10USD 
3hours -> cost 9,30USD 
4hours -> cost 12,30USD 
5hours -> cost 15,30USD 
6hours -> cost 18,30USD 
7hours -> cost 21,30USD 
8hours -> cost 24,30USD 

所以我需要例如以calculcate我多少小時和分鐘可以用17美元?請幫助我 最好的問候!

+0

你試過了什麼代碼?你只能買桌子上的東西,或者你可以買16分鐘嗎? – ergonaut

+2

'3小時以上 - >成本9,30USD'看起來線性爲3美元/小時 –

+0

@Alex,no。即.. 8小時,它是24.3美元,這意味着它是3.0375 – g2000

回答

1

如果你只能買什麼表中,你將需要循環

1) buy maximum amount without going over. 
2) capture hours, and calculate money left. 
3) repeat 

這是假設你得到至少一個更好的交易規模較大,你所購買的時間。

所以從17USD,你會

1) buy 1 card (15,30USD) 
2) 5 hours (total), (1,70USD left) 
1) buy 3 cards (3 x 0,50 = 1,50USD) 
2) 5 hours 45 min (total), (0,20 left) 
exit (not enough to buy lowest card 

Answer = 5 hours 45 min (0,20 left) 

我的假設可能出現的缺陷,但這裏是一個很好的理由。假設這些是電話卡,他們通常會在第一時間收取設置費(第一次),或者每次撥打電話時都收取基本的每次通話費,因此您實際上並未獲得卡上所述的完整通話時間,只有餘額量。

他們可能會說5℃/分鐘,但10℃基地每話費,這意味着你得到

- a 8 minute call on a "15minute" card for 50 cents, (6.25c/min) 
- a 58 minute call on a "1hour" card for 300 cents (5.17c/min) 
- a 484 minute call on a "8hours" card for 2430 cents (5.02c/min) 

我知道這可能比需要的答案的詳細信息,但執行取決於您正在編碼爲購買者或賣家。如果你是購買者,你必須做更多的數學計算,並且提供有關安裝費用,每次通話費用以及計劃使用每張卡片撥打的電話數量的信息。這就是爲什麼對於任何電話計劃來說,瞭解您的通話模式非常重要。

+1

你的假設其實是錯誤的,'1h/15min = 4','4 * 50cent = $ 2',所以買入15分鐘間隔最便宜的是每小時$ 2,即$ 17/50c * 15分鐘= 8小時30分鐘 –