JavaScript,计算动态金额

时间:2015-10-15 13:28:43

标签: javascript calculator

我在这里新人。请帮助我。 如果我使用动态金额,我必须计算我可以买多少时间,所以 例如:我可以输入5USD或10USD等;

我有一些表:

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

所以我需要在示例中计算出17美元可以计算多少小时和分钟?请帮我 最好的问候!

1 个答案:

答案 0 :(得分: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)

我的假设可能看似有缺陷,但这是一个很好的推理。假设这些是电话卡,他们通常会在每次拨打电话时收取设置费用(第一次)或基本每次通话费用,因此您实际上并未获得卡上所述的完整通话时间,只有余额量。

他们可能会说5c / min但每次通话费用为10c,这意味着你得到了

- 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)

我知道这可能是答案所需的更多信息,但实施取决于您是作为购买者还是卖家进行编码。如果您是购买者,则必须进行更多数学计算,并提供有关设置费用,每次通话费用以及您计划使用每张卡进行的通话次数的输入。这就是为什么任何电话计划都必须知道您的通话模式。