-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsolution.js
32 lines (23 loc) · 1 KB
/
solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const shouldBuyFidelity = times => times > 23;
const shouldBuyFidelityRecursive = times => {
const TICKET_PRICE = 12;
const FIDELITY_CARD_PRICE = 250;
const DISCOUNT_PERCENTAGE = 0.75;
const ticketsRegularPrice = TICKET_PRICE * times;
const calculateTicketsPromotionalPrice = n =>
n > 0 ? TICKET_PRICE * DISCOUNT_PERCENTAGE ** n + calculateTicketsPromotionalPrice(n - 1) : 0;
const totalFidelityPrice = FIDELITY_CARD_PRICE + calculateTicketsPromotionalPrice(times);
return totalFidelityPrice < ticketsRegularPrice;
};
const shouldBuyFidelityLoop = times => {
const TICKET_PRICE = 12;
const FIDELITY_CARD_PRICE = 250;
const DISCOUNT_PERCENTAGE = 0.75;
const ticketsRegularPrice = TICKET_PRICE * times;
let totalFidelityPrice = FIDELITY_CARD_PRICE;
for (let i = 1; i <= times; i++) {
totalFidelityPrice += TICKET_PRICE * DISCOUNT_PERCENTAGE ** i;
}
return totalFidelityPrice < ticketsRegularPrice;
};
export { shouldBuyFidelity, shouldBuyFidelityRecursive, shouldBuyFidelityLoop };