#include
#include
long calculate_total(int quantity, double tax_rate);
int main() {
int order1_owed = calculate_total(125, 0.10); //expecting 2338
int main_quantity = 1000;
double main_tax = 0.11;
int order2_owed = calculate_total(main_quantity, main_tax); // expecting 14690
double discount = 0.5;
int order3_owed = calculate_total(main_quantity / 100, main_tax * 2); // expecting 230
return 0;
}
/* Returns the total purchase price (in cents) for an order of ping-pong balls,
* given a quantity and a tax rate (between 0 and 1), at a unit price of 20 cents.
* Volume discounts are applied before tax:
* - No discount is applied to orders of less than 100 units
* - Orders of at least 100 units and less than 500 units are discounted 15%
* - Orders of 500 or more are discounted 35%
*/
long calculate_total(int quantity, double tax_rate) {
double discount = 0.0;
if (quantity < 100) {
discount = 0.0;
}
else if (quantity < 500) {
discount = 0.15;
}
else { // Quantity >= 500
discount = 0.35;
}
return lround(quantity * 20 * (1 - discount) * (1 + tax_rate));
}