Senior 5 min · March 06, 2026

Reverse Percentage Recovery — Divide Not Add Back

Adding 20% back to a discounted price inflates recovery by 5% of the original — always divide by 0.

N
Naren · Founder
Plain-English first. Then code. Then the interview question.
About
 ● Production Incident 🔎 Debug Guide
Quick Answer
  • Percent means per hundred: part/whole × 100
  • Three forms: find part, find whole, find percentage
  • Reverse change: divide by multiplier (never add % back)
  • Successive changes: use A + B + (AB/100) or chain multipliers
  • Base is always the reference after 'than' or 'of'
Plain-English First

Imagine you walk into a shop and a jacket that normally costs ₹1000 has a '30% OFF' tag. Percentage is simply the shopkeeper's way of saying 'for every 100 rupees of value, cut 30.' That's it — percent literally means 'per hundred' (from Latin 'per centum'). So 30% of ₹1000 means: if I chop the price into 100 equal pieces, remove 30 of them. You pay for 70 pieces — ₹700. Every percentage problem you'll ever see in an interview is just a variation of this one idea.

Percentages show up everywhere — your salary hike, your bank's interest rate, election results, discount offers, your company's growth report. If numbers describe the world, percentages are how we compare and communicate those numbers in a way every human on the planet instantly understands. That's why every aptitude test — from campus placements to UPSC to big-tech hiring rounds — opens with percentage problems. They test whether you can think proportionally under pressure, which is exactly what real business decisions demand.

The frustrating thing is that most people know what a percentage IS but freeze the moment a question twists the idea slightly — 'what is the original price after a 20% increase?' or 'by what percent is A's salary more than B's?' These aren't hard problems. They just need one clear mental model and three or four formulas that you actually understand, not just memorise.

By the end of this article you'll be able to calculate any percentage value, find the original number before a percentage change, solve percentage increase and decrease problems, handle the classic 'successive percentage change' trap, and answer the trickiest interview percentage questions without a calculator. We'll build every formula from scratch using plain English before showing you the math — because once you see where a formula comes from, you never forget it.

The Foundation: What 'Percent' Actually Means and the One Core Formula

The word 'percent' breaks into two parts: 'per' (for every) + 'cent' (hundred). So 40% simply means 40 out of every 100. Nothing more.

Here's the single formula that every percentage calculation comes from:

$$Percentage = \left( \frac{\text{Part}}{\text{Whole}} \right) \times 100$$

Flip it around and you get the two other forms you'll use constantly:

$$Part = \left( \frac{\text{Percentage}}{100} \right) \times \text{Whole}$$ $$Whole = \left( \frac{\text{Part}}{\text{Percentage}} \right) \times 100$$

Think of it as a triangle. Cover the thing you want to find — the other two pieces of the triangle tell you how to get it.

Example: In a class of 60 students, 45 passed. What percentage passed? $$Percentage = (45 / 60) \times 100 = 75\%$$

Example: 35% of what number is 84? $$Whole = (84 / 35) \times 100 = 240$$

Example: What is 15% of 340? $$Part = (15 / 100) \times 340 = 51$$

All three are the same formula, just rearranged. Burn this triangle into memory — every single percentage problem is one of these three questions in disguise.

io/thecodeforge/aptitude/PercentageFoundation.javaJAVA
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
package io.thecodeforge.aptitude;

public class PercentageFoundation {
    /**
     * Production-grade calculation for Part of a Whole
     * Standard for financial and inventory reporting
     */
    public static double calculatePart(double percentage, double whole) {
        return (percentage / 100.0) * whole;
    }

    /**
     * Calculates the Whole given a Part and its Percentage value
     * Useful for reverse-engineering totals from tax or discount values
     */
    public static double calculateWhole(double part, double percentage) {
        if (percentage == 0) throw new IllegalArgumentException("Percentage cannot be zero");
        return (part / percentage) * 100.0;
    }

    public static void main(String[] args) {
        // Example: What is 15% of 340?
        System.out.println("15% of 340 is: " + calculatePart(15, 340));
        
        // Example: 63 is 45% of what number?
        System.out.println("63 is 45% of: " + calculateWhole(63, 45));
    }
}
Output
15% of 340 is: 51.0
63 is 45% of: 140.0
Mental Math Shortcut:
To find 10% of any number, just move the decimal one place left (10% of 340 = 34). Then build from there — 20% is double that (68), 5% is half of 10% (17), 15% = 10% + 5% (34 + 17 = 51). You can solve most exam questions mentally without long division.
Production Insight
Finance teams use this triangle daily for tax calculations.
A frequent bug: using percentage as decimal without dividing — e.g., 15 instead of 0.15.
Rule: always explicitly divide by 100 in code to avoid unit confusion.
Key Takeaway
Three formulas from one triangle: P = (pct/100)W; W = P/(pct)100; pct = (P/W)*100.
Memorise the triangle, not three separate formulas.
Every percentage problem reduces to finding one of these three unknowns.

Percentage Increase and Decrease — The Direction Trap That Fools Everyone

This is where 80% of interview candidates slip up — not because the math is hard, but because they apply the percentage in the wrong direction.

$$\text{Percentage Change} = \left( \frac{\text{New Value} - \text{Old Value}}{\text{Old Value}} \right) \times 100$$

If the result is positive → it's an increase. Negative → a decrease.

Always divide by the OLD (original) value, never the new one. That's the trap.

Now let's flip it. Suppose you know the original value and the percentage change, and you want the new value:

$$\text{New Value (Increase)} = \text{Old Value} \times (1 + R/100)$$ $$\text{New Value (Decrease)} = \text{Old Value} \times (1 - R/100)$$

The multiplier $(1 + R/100)$ or $(1 - R/100)$ is your best friend. It lets you jump straight to the answer in one step.

$$\text{Original} = \frac{\text{New Value}}{(1 \pm R/100)}$$

This reverse-calculation is the most common 'hard question' in aptitude tests. Once you have the multiplier idea, it's just division.

io/thecodeforge/aptitude/PriceCalculator.javaJAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package io.thecodeforge.aptitude;

public class PriceCalculator {
    /**
     * Calculates the original price before a discount was applied.
     * Crucial for 'Reverse Percentage' interview problems.
     */
    public static double findOriginalPrice(double discountedPrice, double discountPercentage) {
        double multiplier = 1 - (discountPercentage / 100.0);
        return discountedPrice / multiplier;
    }

    public static void main(String[] args) {
        // Problem: After a 20% reduction, a laptop costs 36000. Original price?
        double currentPrice = 36000;
        double discount = 20;
        double original = findOriginalPrice(currentPrice, discount);
        
        System.out.printf("Original Price: ₹%,.2f", original);
    }
}
Output
Original Price: ₹45,000.00
Watch Out — The 'Reverse Percentage' Trap:
If a value increases by 20% and you want to reverse it, you do NOT subtract 20% from the new value. A 20% increase means multiplying by 1.20, so reversing it means dividing by 1.20 — not subtracting 20%. The percentage was calculated on the original, not the final value. This single mistake causes candidates to lose easy marks.
Production Insight
In ERP systems, reverse percentage mistakes cause inventory misvaluation.
A 20% discount reversed incorrectly overstates the original by 5%.
Rule: always code reversal as division by (1 - rate), not multiplication by (1 + rate).
Key Takeaway
Forward: multiply by (1 ± R/100). Reverse: divide by (1 ± R/100).
Never add back the percentage — the base changes.
This one rule prevents 90% of percentage errors in coding interviews.

Successive Percentage Changes — Why 10% + 10% is NOT 20%

Here's a classic interview trick: 'A value is increased by 10% and then increased again by 10%. What is the total percentage increase?' Most people say 20%. The real answer is 21%. Let's see why.

When you apply two percentage changes one after another, the second change is applied to the ALREADY-CHANGED value, not the original. So the percentages don't simply add up.

$$\text{Net \% Change} = A + B + \frac{A \times B}{100}$$

The extra term $(A \times B / 100)$ is the 'compounding effect' — the percentage of a percentage.

For three or more changes, just chain the multipliers: $$\text{Final Value} = \text{Original} \times (1 + A/100) \times (1 + B/100) \times (1 + C/100)$$

Where negative values represent decreases.

This is the secret behind why compound interest beats simple interest, why back-to-back discounts work differently than a single combined discount, and why a 50% loss followed by a 50% gain still leaves you below your starting point. Once you see the compounding pattern, these problems become straightforward.

io/thecodeforge/aptitude/CompoundingCalculator.javaJAVA
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
package io.thecodeforge.aptitude;

public class CompoundingCalculator {
    /**
     * Calculates net percentage change for any number of successive changes.
     * @param originalValue Initial amount
     * @param changes Array of percentage changes (e.g., 10 for 10% inc, -5 for 5% dec)
     * @return Final value after all successive changes
     */
    public static double calculateSuccessiveChange(double originalValue, double[] changes) {
        double result = originalValue;
        for (double change : changes) {
            result *= (1 + (change / 100.0));
        }
        return result;
    }

    public static void main(String[] args) {
        double initial = 10000;
        double[] portfolioChanges = {-50, 50}; // 50% loss then 50% gain
        
        double finalValue = calculateSuccessiveChange(initial, portfolioChanges);
        System.out.println("Final Portfolio Value: ₹" + finalValue);
        System.out.println("Net Change: " + ((finalValue - initial) / initial * 100) + "%");
    }
}
Output
Final Portfolio Value: ₹7500.0
Net Change: -25.0%
Interview Gold:
The formula Net% = A + B + (AB/100) only works for exactly two successive changes. For three or more, always chain the multipliers: multiply the original by each factor in sequence. It's faster, less error-prone, and interviewers love seeing this multiplier approach because it shows you understand compounding, not just the formula.
Production Insight
Portfolio simulation software often miscomputes returns by adding percentages.
A fund that lost 50% and gained 50% reports -25%, not 0%.
Rule: always use multiplicative chaining for multi-period returns.
Key Takeaway
Successive changes NEVER add. Use AB/100 term or chain multipliers.
A 50% loss + 50% gain = 25% net loss.
The compounding term is why compound interest beats simple interest.

Percentage Comparison Problems — 'More Than' vs 'Less Than' vs 'Of'

One of the most misread question types in aptitude tests involves comparative percentages. The difference between 'A is what percent MORE than B' and 'A is what percent OF B' is not just grammar — the answers are completely different numbers.

Type 1 — 'A is what % of B?' Answer = $(A / B) \times 100$

Type 2 — 'A is what % more than B?' Answer = $((A - B) / B) \times 100$ (You divide by B because B is the base/reference)

Type 3 — 'A is what % less than B?' Answer = $((B - A) / B) \times 100$ (Still divide by B — it's always the reference value)

Type 4 — 'By what % should A be increased to equal B?' Answer = $((B - A) / A) \times 100$ (Now A is the base because you're changing A)

The golden rule: the denominator is always the BASE — the thing you're comparing FROM or changing FROM. Read the question carefully to identify what the 'reference' is.

This catches candidates constantly because when you're not sure, your instinct picks the wrong denominator and your answer is off.

io/thecodeforge/aptitude/ComparisonEngine.javaJAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package io.thecodeforge.aptitude;

public class ComparisonEngine {
    public static void compareSalaries(double ravi, double priya) {
        // Priya earns what % MORE than Ravi?
        double moreThan = ((priya - ravi) / ravi) * 100;
        
        // Ravi earns what % LESS than Priya?
        double lessThan = ((priya - ravi) / priya) * 100;

        System.out.printf("Priya is %.1f%% more than Ravi%n", moreThan);
        System.out.printf("Ravi is %.1f%% less than Priya%n", lessThan);
    }

    public static void main(String[] args) {
        compareSalaries(40000, 50000);
    }
}
Output
Priya is 25.0% more than Ravi
Ravi is 20.0% less than Priya
Watch Out — 'More Than' vs 'Less Than' give DIFFERENT answers:
If A = 40 and B = 50, then 'B is 25% more than A' AND 'A is 20% less than B' are BOTH correct statements about the same two numbers. They look like they should be equal but they're not, because the base flips. In an interview, the moment you see 'more than' or 'less than', circle the reference value and make it your denominator — never the other number.
Production Insight
HR compensation reports compare salaries using these formulas.
A common error: reporting 'Senior pays 20% more than Junior' when base is wrong.
Rule: always explicitly state the base in written reports.
Key Takeaway
Denominator = reference = the thing after 'than' or 'of'.
'More than' and 'less than' are not reciprocals of each other.
Identify base first, then formula follows.
Identify the Base Denominator
IfQuestion has 'of'?
UseDenominator is the value after 'of'
IfQuestion has 'more than' or 'less than'?
UseDenominator is the value after 'than'
IfQuestion says 'by what % should A be increased to equal B'?
UseDenominator is A (the value being changed)

Percentage in Data Interpretation & Compound Applications

Percentage problems aren't just isolated calculations — they appear in data interpretation tables, population growth, and depreciation problems. The same core formulas apply, but you need to chain them carefully.

Population Growth (Compound) $$\text{Population after n years} = P \times (1 + R/100)^n$$ where R is annual growth rate.

Depreciation $$\text{Value after n years} = V \times (1 - R/100)^n$$ Same structure, but with a decrease multiplier.

Data Interpretation When a table shows percentages of a total, the 'whole' often changes as you move across columns. Always identify the base: 'percentage of X' means X is the whole.

Aptitude Trick: Expenditure = Price × Consumption If price increases by 25%, to keep expenditure same, consumption must decrease by 20%. Use: % reduction = (R/(100+R))×100.

This section ties together reverse percentage, successive changes, and comparison — you'll see them in one problem frequently.

io/thecodeforge/aptitude/PopulationGrowth.javaJAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package io.thecodeforge.aptitude;

public class PopulationGrowth {
    public static double futurePopulation(double current, double growthRate, int years) {
        return current * Math.pow(1 + growthRate / 100.0, years);
    }

    public static double priceConsumptionReduction(double increasePercent) {
        // To keep expenditure same after price increase
        return (increasePercent / (100 + increasePercent)) * 100;
    }

    public static void main(String[] args) {
        double pop = futurePopulation(100000, 2.5, 5);
        System.out.println("Population after 5 years: " + pop);
        System.out.println("To offset 25% price hike, reduce consumption by: " 
            + String.format("%.1f%%", priceConsumptionReduction(25)));
    }
}
Output
Population after 5 years: 113140.821...
To offset 25% price hike, reduce consumption by: 20.0%
Expenditure = Price × Consumption
  • If price increases by P%, new height = 1 + P/100
  • To keep area (expenditure) same, width must shrink by P/(100+P)%
  • Example: 25% price increase → consumption cut by 25/125 = 20%
  • This is a direct application of reverse percentage and successive change concepts
Production Insight
Budget forecasting models use these compound percentage formulas.
Mistaking linear growth for compound growth leads to 10-20% errors over 5 years.
Rule: always confirm whether growth is simple or compound (annual compounding).
Key Takeaway
Compound percentage: use exponent n for years.
Expenditure constant formula: reduce consumption by R/(100+R).
Data interpretation: always find the base — 'percentage of what?'
● Production incidentPOST-MORTEMseverity: high

Reverse Percentage Error Wipes Out Discount Margin

Symptom
After applying a 20% discount, the system displayed a selling price. When staff tried to verify the original price, they added 20% to the discounted price and got a wrong original, leading to incorrect inventory valuation.
Assumption
Many assumed reversing a 20% discount means adding 20% to the discounted price. That's false because the 20% was calculated on the original, not the discounted value.
Root cause
The team used: original = discounted + (discounted * 0.20) instead of original = discounted / 0.80. This inflated the recovery price by +5% of original.
Fix
Implemented a validation rule: 'If discount = D%, then original = selling price / (1 - D/100)'. Added training and automated tests for reverse percentage logic.
Key lesson
  • Always divide by the multiplier when reversing percentage changes.
  • Never add back the percentage — the base is different.
  • Automate validation rules for financial calculations.
Production debug guideSymptom → Action: Common percentage errors in reports and systems3 entries
Symptom · 01
Calculated discount seems too high or too low
Fix
Check whether the discount was applied to the correct base. Use: discount = original * (D/100). If using cumulative discounts, chain multipliers correctly.
Symptom · 02
Reverse percentage recovery doesn't match original
Fix
Verify the formula: original = new / (1 ± R/100). Ensure R is the percentage change (not a decimal). Use a test case with round numbers.
Symptom · 03
Successive percentage changes give non-intuitive net result
Fix
Compute using chain multiplication: final = original (1+A/100) (1+B/100). Avoid additive shortcut unless A+B+AB/100 is verified for two changes only.
★ Percentage Formula Quick ReferenceInstant formulas for the three most common percentage mistakes
Reverse discount error
Immediate action
Check if you divided by multiplier
Commands
original = new / (1 - discount/100)
Verify with: is new == original * (1 - discount/100)?
Fix now
Replace 'new * (1+discount/100)' with 'new / (1-discount/100)'
Successive change additive mistake+
Immediate action
Stop adding percentages
Commands
Use (1+A/100)*(1+B/100) - 1
For two changes: A + B + (A*B)/100
Fix now
If A=10, B=10: 10+10+100/100 = 21%, not 20%
Wrong denominator in 'more than' problems+
Immediate action
Identify the reference word (than/of)
Commands
If 'A is x% more than B': denominator = B
If 'B is x% less than A': denominator = A
Fix now
Swap denominator to the reference value
Percentage Problem Type Quick Reference
Problem TypeFormula to UseBase (Denominator)When You See This...
Find % of a number(Percentage / 100) × WholeAlways 100'What is 35% of 480?'
Find what % one number is of another(Part / Whole) × 100The 'whole' or reference value'18 out of 72 is what %?'
% Increase / Decrease((New − Old) / Old) × 100Always the OLD (original) value'Price changed from X to Y, find % change'
Find original before % changeOriginal = New / (1 ± R/100)N/A — you're solving for it'After 20% off it costs X, find original'
Successive % changesNet% = A + B + (AB/100) OR chain multipliersStarting original value'Applied 2 or more changes in sequence'
A is % more than B((A − B) / B) × 100B — the reference you're comparing TO'How much more than B is A?'
A is % less than B((B − A) / B) × 100B — still the reference'How much less than B is A?'
Consumption offset (price increase)Reduction % = R / (100 + R) × 100Initial expenditure'Price increased, keep expense same'
Compound growth/depreciationFinal = Initial × (1 ± R/100)^nInitial value'Population grows 3% annually for 5 years'

Key takeaways

1
Every percentage problem is one of three things
finding the Part, finding the Whole, or finding the Percentage itself — all three come from the one formula: Part = (Percentage / 100) × Whole.
2
When reversing a percentage change, always DIVIDE by the multiplier (e.g. ÷ 0.80 to undo a 20% drop)
never add the percentage back to the final value, because the percentage was never applied to that final value.
3
Two successive percentage changes never simply add up
use Net% = A + B + (AB/100) to account for the compounding. A 50% loss followed by a 50% gain still leaves you 25% below where you started.
4
In comparison questions ('A is what % more than B'), the denominator is always the BASE
the thing you are comparing FROM. 'More than B' means B is in the denominator. 'More than A' means A is in the denominator. Get this wrong and your answer will be completely different from the correct one, even though the arithmetic looks fine.
5
Compound growth and depreciation are just repeated successive percentage changes. Use exponentiation
Final = Initial × (1 ± R/100)^n.

Common mistakes to avoid

4 patterns
×

Adding successive percentages directly

Symptom
After 10% increase then 10% increase, you might think net change is 20%. But the real answer is 21%.
Fix
Use net% = A + B + (AB/100) for two changes, or chain multipliers: original × 1.10 × 1.10 = original × 1.21.
×

Using the WRONG base when reversing a percentage change

Symptom
After a 20% drop to ₹36,000, some add 20% to get ₹43,200 — wrong. The 20% was on the original, not the discounted price.
Fix
Divide final value by the multiplier: ₹36,000 ÷ 0.80 = ₹45,000. Always divide, never add back.
×

Swapping denominator in 'more than' vs 'less than' questions

Symptom
If Priya earns ₹50k, Ravi ₹40k, saying 'Ravi earns 25% less than Priya' is wrong — it's 20% less because base is Priya (₹50k).
Fix
Denominator is always the value that follows the words 'than' or 'of'. Identify that word and use its associated number.
×

Confusing percentage of a number with percentage change

Symptom
Some think '10% of 200' is the same as 'increase 200 by 10%' — they give 20 for both. First is 20, second is 220.
Fix
Remember: 'of' means part/whole multiplication; 'increase by' means add that percentage to the original.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01SENIOR
A shopkeeper marks a product 40% above its cost price and then offers a ...
Q02SENIOR
Rohan's income is 25% more than Sneha's. By what percentage is Sneha's i...
Q03JUNIOR
A number is first increased by 20% and then the result is decreased by 2...
Q04SENIOR
If the price of petrol increases by 25%, by what percentage must a user ...
Q05SENIOR
In an election between two candidates, the winner got 52% of the total v...
Q01 of 05SENIOR

A shopkeeper marks a product 40% above its cost price and then offers a 20% discount. What is his net profit or loss percentage?

ANSWER
Let cost price = 100. Marked price = 140 (40% above). Discount 20% on MP = 140 * 0.80 = 112. Profit = 12%. So 12% profit.
FAQ · 5 QUESTIONS

Frequently Asked Questions

01
What is the formula for percentage increase and decrease?
02
Why does a 50% increase followed by a 50% decrease not bring you back to the original value?
03
What is the difference between 'A is 25% more than B' and 'B is 25% less than A'?
04
How do I quickly calculate a discount percentage?
05
What is the trick for 'expenditure constant after price change'?
🔥

That's Aptitude. Mark it forged?

5 min read · try the examples if you haven't

Previous
Number Series Problems
2 / 14 · Aptitude
Next
Profit and Loss Problems