Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #323 (“Increment Decrement” and “Tax Amount”)
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here:
The Weekly Challenge for the week of 2025-05-26 through 2025-06-01 is #323
The tasks for challenge #323 are as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 323-1: Increment Decrement Submitted by: Mohammad Sajid Anwar You are given a list of operations. Write a script to return the final value after performing the given operations in order. The initial value is always 0. Possible Operations: ++x or x++: increment by 1 --x or x--: decrement by 1 Example #1: Input: @operations = ("--x", "x++", "x++") Output: 1 Operation "--x" => 0 - 1 => -1 Operation "x++" => -1 + 1 => 0 Operation "x++" => 0 + 1 => 1 Example #2: Input: @operations = ("x++", "++x", "x++") Output: 3 Example #3: Input: @operations = ("x++", "++x", "--x", "x--") Output: 0 Operation "x++" => 0 + 1 => 1 Operation "++x" => 1 + 1 => 2 Operation "--x" => 2 - 1 => 1 Operation "x--" => 1 - 1 => 0
I'll use the "switch" statement from the "Switch" CPAN module to decide what operations to perform.

Robbie Hatley's Perl Solution to The Weekly Challenge 323-1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 323-2: Tax Amount Submitted by: Mohammad Sajid Anwar You are given an income amount and tax brackets. Write a script to calculate the total tax amount. Example #1: Input: $income = 10, @tax = ([3, 50], [7, 10], [12,25]) Output: 2.65 1st tax bracket upto 3, tax is 50%. 2nd tax bracket upto 7, tax is 10%. 3rd tax bracket upto 12, tax is 25%. Total Tax => (3 * 50/100) + (4 * 10/100) + (3 * 25/100) => 1.50 + 0.40 + 0.75 => 2.65 Example #2: Input: $income = 2, @tax = ([1, 0], [4, 25], [5,50]) Output: 0.25 Total Tax => (1 * 0/100) + (1 * 25/100) => 0 + 0.25 => 0.25 Example #3: Input: $income = 0, @tax = ([2, 50]) Output: 0
To solve this, I first calculate "lwr" and "upr" bounds for the amount of the income which is in each bracket, then calculate the tax amount for each bracket by multiplying percentage by (upr-lwr), then sum for all brackets.

Robbie Hatley's Perl Solution to The Weekly Challenge 323-2
That's it for challenge 323; see you on challenge 324!
Comments
Post a Comment